とりあえずやってミタ

とりあえず技術的っぽいことをいろいろやってみるブログ

SendGridを試す

      2015/07/15

以前にメール配信サービスMandrillを試したが、競合のSendGridもPerlで呼び出してみた。その際、REST APIで複数の送信先を指定したらうまくいかなかった。
そのときの対応のメモ。


SendGrid

以下の公式サイトでアカウントを作成
  SendGrid

UIが親切で英語でも特に躓くことなく登録完了。
設定もダッシュボードから行って完了。
ドキュメントも豊富で、このなかを探せば大抵のことは書いてある。
Sendgridでは多くの言語対応が進んでいるようで、Perl用のモジュールもgithubで公開されている。
  sendgrid/sendgrid-perl


Email::SendGrid::Transpost::REST

sendgrid-perlの使い方はgithubのREADME.mdに書いてある通り。設定がうまくいっていれば難なくメール送信できる。しかし、複数の送信先を指定するとエラーとなりメールは正常に配信されなかった。エラーを起こした箇所は、Email::SendGrid::Transpost::RESTモジュールのサブルーチン”deliver“である。

deliver“の中でコールされる”splitAddresses“では、Mail::Addressモジュールの”parse“を使っている

Mail::Address->parse“で、引数$strを意図したようにパースできないケースがあるようで、@nameにうまく名前データが入っていなかった。
原因をそれ以上追わなかったが、日本語の文字列が入っているとよろしくないのかもしれない。

そして”deliver“に戻って、61行目から始まる”name”と”address”の数の比較検証で落ちていた。この比較検証の処理に意味あるのかいまいち理解できなかったので、とりあえずコメントアウトして対応した。

 - メモ

  関連記事