YOKOTA’s diary

最近はドローン関連が多いですが…ECやデータ解析、3Dプリンタなども。

TXTレコードが正しく登録できていないのでSPF認証が失敗で迷惑メールになっちゃうよ

私は直接タッチしていないECサイトのプロジェクトが最近ローンチして
プロモーションなどやり始めているんだが、DNSの設定をちゃんとしていないので、
メルマガが迷惑メールに入っている…非常にもったない。 その時の説明内容を以下に整理。

SPFとは

SPFとは、簡単にいうと、メールの送信者が詐称されている可能性がないかをチェックするメールの仕組み。 Fromアドレスに使用するメールアドレスのドメインに紐付けられたサーバーと、実際に配信に利用されたメールサーバーと関係性があるかを判定し認証する仕組み。

認証なので、結果的には失敗もしくは成功します。
その時に失敗だと迷惑メールにフィルタリングされてしまう可能性があります。

Sender Policy Framework (SPF) Authorizing Use of Domains in E-Mail, Version1

SPFの認証結果例

SPFの認証結果はメールのヘッダから確認ができます。多くのメーラーでは「ヘッダー」や「ソース」と表現されていてその中に「Received-SPF: {認証結果}」が出力されています。
※英語表記の場合はShow original

f:id:ashyktj:20150416212007p:plain

Huffingtonpost.comからのメールヘッダ例(Delivered-ToからFromまで抜粋)

Delivered-To: *******@gmail.com
Received: by 10.182.116.4 with SMTP id js4csp3065550obb;
Wed, 11 Mar 2015 15:59:55 -0700 (PDT)
X-Received: by 10.140.44.134 with SMTP id g6mr48454415qga.85.1426114795177;
Wed, 11 Mar 2015 15:59:55 -0700 (PDT)
Return-Path: <delivery@mx.sailthru.com>
Received: from njmta-12.sailthru.com (njmta-12.sailthru.com. [173.228.155.12])
by mx.google.com with ESMTPS id 89si4817441qgh.112.2015.03.11.15.59.54
for <*******@gmail.com>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Wed, 11 Mar 2015 15:59:55 -0700 (PDT)
Received-SPF: pass (google.com: domain of delivery@mx.sailthru.com designates 173.228.155.12 as permitted sender) client-ip=173.228.155.12;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of delivery@mx.sailthru.com designates 173.228.155.12 as permitted sender) smtp.mail=delivery@mx.sailthru.com;
dkim=pass header.i=@huffingtonpost.com
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; s=mt; d=pmta.sailthru.com;
h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:List-Unsubscribe;
bh=ROx2ClUiy4LDDN20URe1UbjHCoU=;
b=VqDlxv3gR2vGQRY77waTO4kc5LEUojNzhAcR7RNM65HvG2l6KbV8L1Q/6mBUFpFkl9yi56Tz+uFE
iCFLsh9/NfyH+nsmSi2KXccglUAwHPIYlx5qM+MwPsY4cfyEvvP8pnpoBzR1I+BajWA0Adll+oq3
7RJeGLwgKP9NdllFPc8=
Received: from nj1-p-fattan-prd-jma-13.flt (172.18.20.18) by njmta-12.sailthru.com id h034em1qqbso for <*******@gmail.com>; Wed, 11 Mar 2015 18:58:11 -0400 (envelope-from <delivery@mx.sailthru.com>)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; t=1426114691;
s=sailthru; d=huffingtonpost.com;
h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:List-Unsubscribe;
bh=aR604u8bpknrnhxHgmJAPI4JY/Prd4epeBGbR1UUNz4=;
b=EiBBLS0s9VZWpbunQcrs3o64doD3iNhpgRSYVdoYECRKW5kRYGNcnnuPI5oC4JbU
AYTjqhZSu+TipBTIISxFllOOzQsckcYkthNLS6i9Z837Ra8uEct+4ZJICTIYlKzrd8y
YOLt8BN9TEV2l7VZlnXUZFjjiKeIBzy5eoJAVGZY=
Date: Wed, 11 Mar 2015 18:58:11 -0400 (EDT)
From: HuffPost Japan <dailybrief@huffingtonpost.com>
…

SPFの認証結果は「pass」であれば問題ないが、
よく見かけるものとしては以下がある

  • 「None」=SPFレコード自体が未公開
  • 「fail」=認証失敗(-)
  • 「softfail」=弱い認証失敗。(~)
  • 「Neutral」=中立(?)
  • 「pass」=認証成功(+)

※rfc4408#section-2.5
※()で指定した「+, -, ~, ?」は実際のSPFレコードを記載するときの修飾子

softfailとNeutralの違いを日本語で説明するのは難しいが、
どちらも、failと同様に、SPFレコードが送信サーバーとマッチはしていないことは伝えており、
SPFの仕様では、softfailはfailとNeutralの間として判断するべしと記載がある。

SPFを正しく設定していないと

SPFは結果的に上記の認証結果が返ってくるが、受信メールのプロバイダによってはfailに近しいものは迷惑メールとして拒否してしまう可能性もあるため、特別な事情がなければ、passすることを前提にSPFの設定を行うべきだと思います。

よくあるのが、冒頭でも記載したように、ECサイトを新規にローンチ・サイトをリニューアルする際に、
メールも含めてドメインをすべて取りなおしたが、SPFレコード(TXTレコード)の登録を失念して、
リプライメールやメルマガや迷惑メールに入ってしまうことなど実際に起こったのを何度か見てます。

せっかく、良い商品やサービスを作って、プロモーションして、ようやく顧客獲得したのに、
いざ、メールを送ってみても、こういう不注意で相手に情報が届かないのは非常にもったいないです。

また、Gmail等は「多くのユーザが迷惑メールフォルダにいれているメール」を
迷惑メールとして判断するアルゴリズムもあるようです。 つまり、1回の迷惑メール配信が、今後に影響することが大いにありえるということです。

※参考:Gmailの迷惑メールに振り分けられる理由
https://support.google.com/mail/answer/1366858?hl=ja&ref_topic=3395161

SPFの設定状況の確認

認証結果が成功ではない場合は即座に対応する必要があります。まずは正しくSPF認証の際に必要な設定であるTXTレコードが正しく登録されているかをwindow/linuxのコマンドで簡単に確認をすることができます。以下は上記ヘッダであるハフィントン・ポストのFromアドレスのドメイン「huffingtonpost.com」がTXTレコードが登録されているかを調べます。

コマンド例(windows/linuxともに同じ)

$ nslookup -type="txt" huffingtonpost.com
;; Truncated, retrying in TCP mode.
Server:         172.19.1.1
Address:        172.19.1.1#53

Non-authoritative answer:
huffingtonpost.com      text = "spf2.0/pra ptr:mx.aol.com include:sendgrid.net include:aspmx.sailthru.com include:_spf.google.com include:amazonses.com ip4:74.205.21.242 ~all"
huffingtonpost.com      text = "v=spf1 a mx ptr:mx.aol.com include:sendgrid.net include:aspmx.sailthru.com include:_spf.google.com include:amazonses.com ip4:74.205.21.242 ~all"

Authoritative answers can be found from:
com     nameserver = k.gtld-servers.net.
...

SPF認証に関係するTXTレコードは下記の部分です。

huffingtonpost.com      text = "v=spf1 a mx ptr:mx.aol.com include:sendgrid.net include:aspmx.sailthru.com include:_spf.google.com include:amazonses.com ip4:74.205.21.242 ~all"

これをある程度、要素分解して解説すると、

  • 「v=spf1」SPFのバージョン1
  • 「ptr:mx.aol.com」送信元ホストのIPをリバースルックアップし、
  • 得られたホスト名でさらに正引きしIPを得て、
  • さらに、そのIPと送信元のホストのIPが含まれる場合、そのホスト名と引数のホストが一致していたら認証成功とする
  • 「include:sendgrid.net」引数のホスト名を利用して認証処理を行う。仮にfail系の結果であっても結果はかえさないため、後続の記述に進む。
  • 「ip4:74.205.21.242」送信元のIPが引数のIPと一死していたら認証成功とする。
  • 「~all」allはすべての送信元ホストにマッチすることを意味し、チルダ(~)の場合はsoftfailを返す

となります。TXTレコードは左から読んでいくため、最後まで認証結果が返らない場合は、最後の「~all」がかえることとなる。ここでチルダの指定を「-」とすれば、failを意味させることもできるし、「?」であればNeutralとすることができる。

上記のハフィントン・ポストはptfやincludeのように複雑な書き方をしているが、ptrのようなリバースルックアップなどは多少負荷がかかるしし、書き方も複雑なので事情がなければ、見た目もわかりやすくIPでの記述をシンプルに行っても問題ないです。

SPF・TXTレコード設定方法

上記のようにTXTレコードを設定するには、ドメイン側での作業が必要となるため、ドメイン管理している担当の方に対応をお願いする必要があります。
例えばドメインの管理をお名前ドットコムで行っていれば、管理メニューの中でTXTレコード(もしくはSPFレコード)やAレコードなどが編集できるDNSレコードの編集メニューがあるはずです。

※参考:http://www.onamae.com/option/dnsrecord/

これらの対応をするための準備や流れとしては、下記になります。

  1. メール送信元のサーバーを特定し、そのグローバルIPを取得
  2. 現在のTXTレコードに1のIPを追加※基本的にTXTレコード自体はドメインに対して1つです。
  3. メール送信してみて正しく反映されているかを確認

1は該当のサーバー情報を知っているはずなのでIPを確認するだけです。
2は書き方に注意がいります。1文字でも誤った書き方をすると、認証結果が成功でも失敗でもなくエラーとなりからです。以下は、もともと「11.22.33.44」というIPが含まれるSPFレコードに「55.66.77.88」という送信サーバーのIPを追加するケースです。

(変更前のレコード)  
mail.ykt.jp text = "v=spf1 +ip4:11.22.33.44 ~all"  

(変更後のレコード)
mail.ykt.jp text = "v=spf1 +ip4:11.22.33.44 +ip4:55.66.77.88 ~all"

※参考:SPFと迷惑メールについて
http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/

遺伝子検査でがんやハゲがわかるのか

アンジェリーナ・ジョリーが卵巣と卵管を摘出されたということだ。
以前にも、乳がんにかかるリスクを減らすために乳房を切除したことがニュースとなった。

http://www3.nhk.or.jp/news/html/20150325/k10010026921000.htmlwww3.nhk.or.jp

アンジェリーナ・ジョリーの母親が卵巣がんだったとのことだが、
がんは部位によって遺伝性にも差があるようで、
乳がん卵巣がんは遺伝的な素因が発症に関係しやすいということ。

乳がんは以前より遺伝的な素因が発症に関係することが知られていました。  
母親が乳がんを発症した場合には、娘の発症リスクは一般のリスクの2倍に、  
母親と姉が発症した場合には、妹の発症リスクは一般のリスクの4倍になるとされています。

がんと遺伝|がん研有明病院

遺伝子検査で調べられること

今回アンジェリーナ・ジョリーも遺伝子検査などの結果を総合して判断を行ったらしい。私も以前DeNA社の提供するMYOCDEという遺伝子検査サービスを利用した。

プランは以下の3種類。
私は1番目の全部のタイプ(旧オールインワン280+という名前のはず)を 自分と妻の分を購入しました。

価格は一つ28000円なので安くはないですが
病気(3大疾病のがん・心筋梗塞脳梗塞 等)と体質(長生き・肥満・肌質 等)の遺伝的傾向がわかります。
また、遺伝子なので変わるものではなく基本は一回きりなはずであり、
自分の体を知る意味でもやっておこうと思い妻と一緒にやることにしました。

遺伝子検査のサービスはいくつかありますが、
DeNAのMYCODEを選択したのは、DeNAには優秀な人が多くいそうだし、
サイトもわかりやすく今後申し込みが増えそう(サンプルが多くなるので結果の信ぴょう性もたかまりそう)と考えて選択しました。

他にもジーンライフという老舗の遺伝子検査サービスもあります。
価格帯やサービス内容も似ております。先駆者的な会社かもしれませんが、
サービス面やコンテンツなどを考えると、結果的にMYCODEのほうがいいかな、
と思っています。
http://genelife.jp/

MYCODEで検査した結果は?サービスは?

検査キットが送られてくるので、キットの識別番号をネットで登録して紐付けます。
キットに唾液をたんまり入れて返送するだけで、結果はもらえます。
私は2週間ほどで結果通知がきて、ネットのマイページですぐに確認することができました。

実際の結果ですが、例えばこんな感じです↓(サマリ)
f:id:ashyktj:20150325172105p:plain

私の場合は、やや肺がんになりやすい、という傾向があるようです。
他にもたくさんの病名と平均と比較した発症倍率がずらっと記載されています。

検査結果は「遺伝子型の疾患発症リスク」と
「遺伝子型における体質」の大きく2つが分かります

f:id:ashyktj:20150325172449p:plain

身長や体重といった見た目の内容だったり、
AGA(男性型若年性脱毛症)などの体質もあったりします。
そして各項目ごとに具体的な内容まで記載されています。

実際のところ、体質面においての検査結果はあたっているところが多いです。

この他にも、結果に応じた生活改善プログラムが
私に合わせたものが用意されており、アンケートに答えると
さらに精度が上がったりするようです。

実際にやってみてどうか

やる前とやる後で、何か大きく変わったことはないですが、
普段の食事に少し気を配るようになりました。
動物性の食事は少なめでビタミン不足な体質に対して補充する食事とか、

また、妻の病気の傾向(子宮がんがじゃっかん可能性が高いなど)などを
事前に把握できたことはとても良かったと思います。
検診にいく良いきっかけにもなりました。

結果によって神経質になる人もでてきそうですが
まずは事実を知って、選択肢を増やすことはとても良いことだと思います。

風について今一度調べてみた

f:id:ashyktj:20150325151125p:plain

ドローンと風は非常に相性が悪く、
せっかく休みの日にのんびり遊びたいのに
風が強いとどうしようもないです。

今まで風の強弱なんて気にしたことがなかったんで、
これを機に少し風について調べてみた。

風の予報

Googleで天気予報を検索すると、まず風速8m/sとある。
気象庁のHP情報を見ると、風速とは正確には「10分間平均風速」を指していて、 10分間の平均で1秒につき8メートルということ。

www.jma.go.jp

また、風向とは、風が吹いていく方角ではなくて、
風が向かって来る方角のことをいうようです。

実際に風速8mはどれくらいの強さなのか?

風速によって階級を分けたビューフォート風力階級から見ると、
本日の風速8mは「小枝が折れる。風に向かって歩けない。」
くらいのものであり、実際に外に出てみると自転車をこぐのもしんどいと思うレベルです。これじゃあドローンも飛ばせない…

ビューフォート風力階級 - Wikipedia

ビューフォート風力階級(Wikipediaの情報から簡易的に加工)

階級 名称 相当風速 陸上の様子
0 平穏 / 静穏 0〜0.2m/s 煙はまっすぐ昇る。
1 至軽風 0.3〜1.5m/s 煙は風向きが分かる程度にたなびく。
2 軽風 1.6〜3.3m/s 顔に風を感じる。木の葉が揺れる。
3 軟風 3.4〜5.4m/s 木の葉や小枝が揺れる。
4 和風 5.5〜7.9m/s 砂埃が立ったり、小さなゴミや落ち葉が宙に舞う。
5 疾風 8.0〜10.7m/s 葉のある灌木が揺れ始める。
6 雄風 10.8〜13.8m/s 木の大枝が揺れ、傘がさしにくくなる。
7 強風 13.9〜17.1m/s 大きな木の全体が揺れ、風に向かって歩きにくい。
8 疾強風 17.2〜20.7m/s 小枝が折れる。風に向かって歩けない。
9 大強風 20.8〜24.4m/s 屋根瓦が飛ぶ。人家に被害が出始める。
10 全強風/暴風 24.5〜28.4m/s 内陸部では稀。根こそぎ倒される木が出始める。
11 暴風/烈風 28.5〜32.6m/s めったに起こらない。広い範囲の被害を伴う。
12 颶風 32.7m/s以上 被害が更に甚大になる。

本日の風の状況を自動的に把握する

毎回検索してチェックするのも面倒なので、
当日の風の状況を地域ごとに把握したい。
IFTTTを利用すれば「地域」「風速(mph)何メートル以上」「風向」を指定してiOSのプッシュ通知に送ることができます。IFTTTのChannelsは「weather」です。

mphは風速1m/s== 0.44704 m/sなので
和風の下限である「5.5m/s」はmphだと、だいたい「2.45mph」となります。
メートル毎秒 - Wikipedia

ifttt.com

ちなみに、風はなぜ起こるのか

風は空気の移動が起こることで発生するようですが、
空気の移動の発生理由は多々あるようです。
その中でも温度の要素は大きいと。
小学生向けに学研からかんたんに説明されている。

かんたんにいえば、風というのは空気の移動です。わたしたちの住む地球は空気におおわれています。 その空気は目に見えませんし、形もありませんが、 温度が上がるとふくらみ、反対に温度が下がると、ちぢむという性質をもっています。  

太陽に照らされてあたためられふくらんだ空気は、軽くなって上昇します。反対に空の上のほうで冷やされてちぢんだ空気は、重くなって下降するのです。そうなると、上昇した空気のあとには、まわりから別の空気が流れこんできます。また、下降した空気のあとにも、 まわりから別の空気が流れこんでくるのです。
このような空気の動きが、風として感じられるというわけです。

風はどうしてふくの|科学なぜなぜ110番|学研サイエンスキッズ

確かに冷たいものは重そうで、暖かいものは軽い感じがします。
軽く上がった空気の隙間に冷たい空気が流れていくイメージでしょうか。

うまく風と付き合っていければと思います。

ドローン体験記−Syma X5c 2.4G


※お知らせ

ドローン関連のコンテンツはドローン専用メディア「Be into Drone」に移行しました!

drone.beinto.xyz


最近では空撮などでも使われるようになったドローン。
このPVがきっかけで興味を持ちました。

www.youtube.com

オーケー・ゴー(OK Go)はアメリカのロックバンドで 毎度面白い工夫を凝らしたPVで有名。

matome.naver.jp

この撮影にはドローンも使われているということ。
UNI-CUBに乗りながら彼らが移動しているが、
ごく自然に上空からのカットに切り替わるあたり、
最初からドローンで撮影しているのでしょうか。

ということで興味を持ったドローンですが、
最初どれを買えばいいのか悩んで買ったのがSymaという安価なDrone。

200万画素のHDカメラでカメラと動画が撮影可能です。

実際に操作してみて...

とてもむずかしい…

上昇/下降はいいのですが、
Symaの前方がどちらに向いているのかが少し離れるとわからなくなるため
右に飛行したいと思ったら前に行ったり後ろに行ったり、
背面にオレンジ(前方)、緑(後方)のランプがついているんですが
お昼間にやると全然判断できないです。

私がいつもいく河原で操作に格闘していたところ、
たまたま通りがかったドローンレーサー(アメリカ人?)の方にいろいろ相談したところプロペラの色を変えたほうがいいとのこと。
ただAmazonで探す限りSymaのカラープロペラが見つからないので自分で色塗ろうと思います。

スペアバッテリーがないと楽しめない

最初から同梱してあるバッテリーは500mAh 3.7V のもの。 これだと5分前後は連続飛行できるのですがほんとあっという間です。
600mAhのバッテリーを4つと
4つ同時に充電できるUSB接続の充電器をセットで購入しました。

これで、だいたい30分前後楽しめることができます。 一つを飛ばしている間はバッファローの携帯充電器で使い終わったバッテリーを充電すれば
使いまわすことも可能です。急速充電の充電器なのですが、
ひとつ1時間かかったと思います(充電器の接続が悪かっただけかも)

iBUFFALO 【iPhone6,iPhone6 Plus 動作確認済】スマートフォン用モバイルバッテリー 超急速チャージ Voltissimo 8000mAh ホワイト BSMPB0180WH

最初は、墜落・激突・池ぽちゃ

ちょっと操作が慣れてきたなと思っても、
風にちょっと煽られたりして思わぬ方向にいったりします。

上述したように、前方方向が認識できなくて意図しない方向に進んでしまうため、
人が近くにいる場合は危険なので、私の場合はちょっと危なそうだなと思ったら
強制的に墜落させて回避しています笑

先々週は、調子に乗ってどこまで高度をあげられるのかなと思っていたら、 途中から一切制御がきかなくなり、あれよあれよという間に川の上空へ…
もう急いで追いかけていくも離れていく私のSyma…

静かに池に沈んでいきました。
決して浮かんできませんでした…

とても悔しい思いでいっぱいでしたが、
帰りに同じSymaを再購入。
今だに河原で強制墜落させる日々を送っております。

プロペラを交換したら飛ばなくなった

あまりに墜落させているせいか土ぼこりや泥が大量についてしまいプロペラも汚れておりました。
一つのプロペラに至っては回転数も小さかったので
お掃除も兼ねて分解して、スペアのプロペラにも付け替えました。

と動かしたら飛ばない?プロペラは回転するものの飛行しません。
プロペラの回転が落ちているのかなと思いましたが元気に動いている様子。
プロペラの向きが違うのかなぁと思いいろいろ変えるもうまく行かず一旦帰宅。

ネットでSymaの写真を見つけてプロペラの位置を確認したところ
私がつけたプロペラの向きがやはりおかしいようでした。(左右逆になっていた)

f:id:ashyktj:20150325094909j:plain

↑これは正しいもの。
動画・写真を安定して取れるようになったら、
次はプログラミング可能なドローンを検討しようと思います。

WindowsでHDDからSSDに切り替える(ストレージの換装)

HDDの内容をそのまますべて、SDDにコピーして、SSD記憶媒体として利用する方法

フォーマットされているSSDをPCに取り付けて通常どおり、PCを起動する。
EドライブなどにSSDドライブが認識されていることを確認※して、
下記ツールをつかってHDDからSSDにデータをコピーする(クローン)

Windowsキー+「R」キー :「ファイル名を指定して実行」のショートカット。
「diskmgmt.msc」と入力してディスク管理を起動する。

http://tvcap.fc2web.com/easeus-todo-backup/ver70/easeus-todo-backup70.html

クローンにはおよそ1時間前後はかかった。
Windowsの「ハードディスク パーティションの作成とフォーマット」より
新しいSSDドライブがアクティブになっていることを確認する。
後はPC起動時にF8を押下して、起動構成を変更する。
これまでHDDが読まれるようになっているのをSSDが読まれるように変更(BIOSの起動順序) 起動して完了。

ただし、SSDにチェックをいれてクローンしても、エラーで終了し、うまくいかないことがあった。
エラー内容は、

0x1829E095[?] ファイルシステム上にエラーが見つかりました。セクタバイセクタ方式の復元(またはクローン)を選択して再実行してください。

f:id:ashyktj:20150313170615p:plain

これの原因がいまいちわからず、長時間はまった。 私はwindowschkdskコマンドでエラーを修復してから実行して再起動した後に、再度クローン実行したところ正常にクローンに成功した。
クローンするときは問題ないと判断された空き容量だが
もしかしたらディスクの空き容量も影響していかもしれない。
ちなみに実施時のディスクはこれくらい。 最終的には10GBギリギリではなく40GBくらい空けてある程度余裕を持たせて実行した。

f:id:ashyktj:20150313170815p:plain