« 【iOS/Swift】_BSMachError | トップページ | 世界を旅する歩数計SmanpoのiOS版をリリースしました。 »

2016年2月13日 (土)

AzureからのSendGrid利用でメール送信できなくなったので暫定対応した件

次の仕組みが2/10頃までは使えていたんですよ。

1)スマホアプリからAzure上のphpアプリにpost
2)SendGrid Web APIにpost
3)メール送信

しかし、2/12にメール送信されていないことに気づきました。

SendGridのダッシュボードを見ると2/10を最後にactivityが無い。

というわけで、今回はiOSアプリのpostの様子をxcodeのシュミレーターで確認。
→Azure上のphpアプリから、postを受け付けた旨のレスポンスを確認(ここは問題なし)

次に、SendGrid Web APIにpostする検証用のphpスクリプトを作りAzureにアップしブラウザから起動。
→以下のレスポンス。。。

”301 Moved Permanently”

がーん、そりゃSendGrid Web APIが受け付けないわけだ。。。

つまり2/10までは受け付けていたけどそれ以降はフォローしませんよ、という事のよう。ちなみにこれまで使っていたSendGrid Web APIのエンドポイントのベースURIは↓
 
‘http://sendgrid.com/'

最近のコードに使えるエンドポイント情報があるにちがいないと思い探して見つけたのが↓(2014年だけど。。。)

ここでのエンドポイントベースURIは↓
'https://api.sendgrid.com/'(←追記:これが正しいみたい)

ここでのエンドポイントベースURIは↓
‘https://sendgrid.com/'

なるほど、SSL(https)のみサポートになっていたのか、と言うことでとりあえずさっき作った検証用phpスクリプトのapiエンドポイントを”http”から”https”に変更して起動(追記:'https://api.sendgrid.com/'に一本化されたとの事)。
→以下のレスポンス。。。

”NULL”

SendGridのダッシュボードでも依然activityが無く処理を受け付けていない様子。

かくなる上はブラウザのurlにSendGrid Web APIのエンドポイントとpostするパラメーターをget uriにして起動、、そしたらSendGridが受け付けしてくれてダッシュボードでも依然activityにも表示されメールも届いた。つまり、

SendGridは動いている!(当たり前か)

そーいえばTwilioでも似たような事があったような、と言うことで↓を思い出しました。
とりあえず↓を追記して動くことを確認できました。
“curl_setopt($req, CURLOPT_SSL_VERIFYPEER, false); // not recommended ”

と言うことで、今回の対処は2箇所。

1)SendGrid Web APIのエンドポイントのベースURIをSSL(https)に変更
2)CURLOPT_SSL_VERIFYPEER を false ←あくまで暫定対応、証明書を指定しましょう。

以上でーす。

追記:@nakansukeさんから詳しい情報提供を頂きました、ありがとうございます!

« 【iOS/Swift】_BSMachError | トップページ | 世界を旅する歩数計SmanpoのiOS版をリリースしました。 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/533352/63203573

この記事へのトラックバック一覧です: AzureからのSendGrid利用でメール送信できなくなったので暫定対応した件:

« 【iOS/Swift】_BSMachError | トップページ | 世界を旅する歩数計SmanpoのiOS版をリリースしました。 »

最近の作品

つぶやき

ウェブページ

無料ブログはココログ