lunaplus*

Find hints in all sort of places

メールSaaS機能を比較

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

Alibaba Cloud のマルチアカウントを使いこなす

私は、AWSだけでなく、Alibaba Cloudも利用しています。 複数のAlibabaアカウントを利用していることもあり、マネージメントコンソールでアカウントを切り替えて 利用できる Switch Identityの機能で少しだけ便利になりました。 AWSでも同様の機能があり、使ったことがあったので 公式ドキュメント の記載でも理解できましたが、 理解を深めるために改めて設定手順ベースで記載してみました。

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つのリージョン(杭州、シンガポール、シドニー)にて利用できます。

Alibaba Cloud CLIを使う

私は、AWSだけでなく、Alibaba Cloudも利用しています。 AWSを利用する際にもAPIを学ぶためにCLIを見ながら確認をすすめることがあるのですが、 Alibaba Cloudでも同じようにAlibaba Cloud CLIが提供されているので、これを利用してみようと 思います。 公式サイトの手順に沿って、最新のCLIファイルをダウンロードします。 Macで実行した際は、CLIモジュールファイル(tar.gz形式)を解凍して、/usr/local/binの ディレクトリに配置するだけの簡単な手順でした。