lunaplus*

Find hints in all sort of places

メールSaaS機能を比較

これまで、Amazon SES (Simple Email Service) にてメール送信を行っていた処理をマルチクラウド化対応で、 新たにAlibaba DirectMailも活用してメール送信してみようと考え検証を行っていました。 そうしたところ、SESではメール送信できていたメッセージが、DirectMailではAPIのエラーとなってしまうことがわかりました。 エラーメッセージの内容から、送信メールに設定しているSubjectの文字数が130文字もあった(そもそも、ちょっと長すぎじゃないか?)ことが エラーの原因だったのです。 折角の機会なので、調べた結果を小ネタとして記事にまとめておきます。

Proxy経由でSMTPアクセス

「マネージドサービスを使うことでサーバー管理の手間を減らしたい」というのはよく聞く話です。 Alibaba DirectMail や Amazon SES など、多くのマネージドサービスもREST APIやイベント連携によるメール機能を提供しています。 これらを利用すると、アプリケーションからAPIコールで直接メールが送信できるので非常に簡単です。

DirectMailの送信結果を判定する

Direct Mailの利用方法は、色々とAPIを触りながら理解が深まってきました。 今回は、実際のアプリケーションでの利用を想定したユースケースを考えてみます。 一般的にメールの送信を行う際には、メールの不達(バウンス)を出さないことが望ましいとされています。 メールが不達となるパターンとして、ソフトバウンスとハードバウンスの2つがあります。

DirectMailでメール送信

DirectMailの利用設定の記事で設定したDirectMailの続きです。 メールを送信するためにメール送信者(Sender Addresses)を設定します。 2020/8現在、ROSでサポートされていないため、Aliyun CLIで実行を試みましたが、こちらもサポートされていない ようでした。そのため、今回はPythonのスクリプトで実行しました。 元ネタは、OpenAPI Exploreで作成したソースコードを一部改良して作成しました。 RAMで設定したユーザーの AccessKey と Secretを利用して実行します。また、SendTypeとしては、 都度送信する機能を利用するためtriggerを指定しています。

DirectMailの利用設定をする

DirectMailは、Alibaba Cloudが提供するメール送信のマネージドサービスで管理に手間のかかるメール送信の機能を 安定的にスケールを確保した形で提供されるクラウドサービスです。 AWSで言うところのSES(Simple Email Service)に対応する機能で、2020年8月現在、インターナショナルサイトアカウントでは Alibabaの3つのリージョン(杭州、シンガポール、シドニー)にて利用できます。