Mailでメールを送る方法:API、SMTP編techblogこんにちは、エンジニアのブルーです。Mailでメールを送る方法:コンソール編」では、AlibabaCloudのコンソールよりメールを送る手順をご紹介いたしました。今回はコンソールからではなく、API、SMTPを利用した送信方法をご紹介させていただきます。おわりにAPIでの送信APIメールの種類APIでのメール送信方法のご紹介の前に、APIに準備されているメールの種類をご紹介します。・SingleSendMailメールテンプレートを呼び出さずに送るメール・BatchSendMailメールテンプレートを呼び出して送るメール今回は、BatchSendMail利用してメールを送信する方法を紹介していきたいと思います。Mailで完了していることを前提とします。Mailでメールを送る方法1を参考にして設定をしてみてください。送信方法APIを使用してメール送信を行う場合は署名が必要となります。署名を生成する方法はドキュメントに記載されています。SDKを利用することで署名不要となります。今回はPHPのSDKを使用して、メール送信行なっていきたいと思います。C#の3種類があります。(2019年11月現在)PHPのSDKはバージョン5.3以降に対応しています。PHPのSDKはこちらからダウンロードしてください。メール送信用ファイルと同じディレクトリに配置します。今回実行したPHP環境はバージョン7.2.19です。実際にメール送信をするコードを書いていきたいと思います。先ほどインストールしたSDKを読み込みます。Dm;次にメールサーバ、アクススキー、シークレットアクセスキーをセットします。メールサーバは利用するリージョンによって異なります。"シークレットキー");//シンガポール、シドニーリージョンを使用する際、以下を追記してください。$iClientProfile::addEndpoint("リージョン","リージョン","Dm","メールサーバ");メールサーバに接続するオブジェクトを作成し、リクエストするメールを作成します。今回はBatchSendMailを指定していますが、SingleSendMailを利用する際はこちらをご参照ください。Dm\BatchSendMailRequest();送信者アドレスをセットします。送信者アドレスはすでにコンソールで作成されているものを使用します。$request->setAccountName("送信者アドレス");アドレスタイプを選択します。1:送信者アドレス※ランダムアドレス:システムによって生成されたランダムな文字列と送信者アドレスの組み合わせを表示します。$request->setAddressType(1);テンプレートをセットします。$request->setTemplateName("テンプレート名");受信者リストをセットします。$request->setReceiversName("受信者リスト");最後にgetAcsResponseを呼び出し、メールを送信します。エラーが起きた際は、こちらのエラーコード表を参考にしてください。print_r($e->getErrorMessage());}送信に成功すると以下のようなリクエストIDが返ってきます。5FE2F79A-80BF-44C9-93FD-F9DE8C436AA5上記のコードをまとめておきます。"シークレットキー");//シンガポール、シドニーリージョンを使用する際、以下を追記してください。MailではSMTPを利用してメールを送信することができます。SMTPが利用できれば様々な言語で利用することができます。こちらを参照してください。今回はPythonを使用してメールを送信してみたいと思います。Mailで完了していることを前提とします。未設定の場合はこちらを参考にして設定をしてみてください。・受信者リストの作成また、SMTPでのメール送信ではコンソールよりSMTPのパスワードを設定しておく必要があります。Addressesより設定してください。※SMTPのパスワードには以下のような制約があります。Mailを利用できるSMTPサーバは中国杭州、シンガポール、シドニーにそれぞれ準備されています。smtpdm-ap-southeast-2.aliyun.comまた、SMTPで使用できるポートは以下です。CloudのECSには25番ポート制限があるので、ECSからメールを送信する際は気をつけてください。jp.alibabacloud.com続いて、Pythonを使用したSMTPでのメール送信のコードを紹介します。コードはドキュメントにも記載されています。今回実行したPython環境はバージョン2.7.5です。SMTPでのメール送信に使用するライブラリをインポートします。Headerメール送信用のオブジェクトを作成します。MIMEMultipart('alternative')送信するメールの情報をオブジェクトにセットします。_charset='UTF-8')msg.attach(texthtml)SMTPサーバに接続するオブジェクトを作成し、接続先サーバをセットします。465)client.set_debuglevel(0)SMTPサーバへログインします。password)メールを送信します。msg.as_string())client.quit()最後にコードをまとめておきます。MailのAPI、SMTPを使用したメール送信方法をご紹介しました。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。