「クラウディアさんが10分でAzure上にEC-CUBEをインストールできるというから試してみた」で構築したWindows Azure上のEC-CUBEを触っているとオーダー完了時などに自動配信されるメールが送れないことが判明。
XAMPP環境とかでもSMTP立ててないとメール送れないよなぁと思いながら調べると、どうもWindows Azure上ではSMTPを立てれない模様。
(できるできないというより、スパム大量送信などで利用されるからというのが理由という記事も。なるほど)
上の記事やMSDNサイトにもあるようにSendGridというサービスが良い模様。月間25000通まで無料でおくれるようなので今回のテストには十分。
Windows Azure ユーザー向けの SendGrid 特別プラン
というのもやっています。
SMTPサービス SendGridを契約するというスライドを参考に。
(Azureストアから導入も可能ですが、その場合Azureのサブスクリプションに紐づいたクレジット情報が必要なようです)
トップページの下部Sign Up Nowボタンをクリック。
アカウントに必要な名前やメールアドレス、利用サイトなどを入力します。
するとメールアドレス宛にアカウントを有効化するためのメールが届くのでクリックして有効化します。
有効化するとログインした状態でマイページに移動するのでそこでアカウント情報を入力。
あとはメールが利用できるようになるまでしばらく待つ模様・・・(一時間ちょい待ちました。大体2時間以内で返事がくるようです)。
SendGrid – Account Provisioning Failure
というタイトルのメールが来ました。アカウントの取得に失敗です。
失敗の内容を見ると、メールを何に使うの?と、SendGrid登録のメールのドメインと、登録したサイトのドメインが違うけどなんで?という質問が書かれていました。
前述の方はテスト用である旨を、エキサイト翻訳さんにお世話になりながら記述。
後者のドメインの方法は、
Add/modify an html page on the domain to include the text “sendgrid”.
で対応。サイトにsendgridと書いただけのテキストを配置してそのURLを伝えました。
メールを返信すると、
Your SendGrid account has been provisioned,
という文章から始まるメールが届きます。これでSendGridでメールが使えるようになりました。
後はEC-CUBEのdata\config\config.phpの以下の行を変更します。
define ('MAIL_BACKEND', 'smtp'); define ('SMTP_HOST', 'smtp.sendgrid.net'); define ('SMTP_PORT', '587'); define ('SMTP_USER', 'sendgridのユーザー名'); define ('SMTP_PASSWORD', 'sendgridのパスワード');
これでWindows Azure上のEC-CUBEからsendGridを利用したメール送信が可能になりました!!
Please give us your valuable comment