翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SESと Sendmail の統合
Sendmail は 1980 年代の初めにリリースされ、それ以降、継続的に改善されてきました。これは、ユーザーの大規模なコミュニティを持つ柔軟で設定可能なメッセージ転送エージェント (MTA) です。Sendmail は 2013 年に Proofpoint により買収されましたが、Proofpoint は Sendmail のオープンソースバージョンの提供を続けています。Sendmail の open source バージョン
このセクションの手順では、Amazon 経由で E メールを送信するように Sendmail を設定する方法を示しますSES。この手順は、Ubuntu 18.04.2 を実行しているサーバーでテストされましたLTS。
注記
Sendmail はサードパーティーのアプリケーションであり、Amazon Web Services によって開発またはサポートされていません。このセクションの手順は情報提供のみを目的としており、予告なく変更される場合があります。
前提条件
このセクションの手順を完了する前に、以下の手順を完了する必要があります。
-
Sendmail パッケージをサーバーにインストールします。
注記
使用しているオペレーティングシステムのディストリビューションに応じて、
sendmail-cf
、m4
、およびcyrus-sasl-plain
のパッケージのインストールが必要になる場合があります。 -
差出人アドレスとして使用する ID を確認します。詳細については、「Eメールアドレス ID の作成」を参照してください。
アカウントが Amazon SESサンドボックスにある場合は、E メールを送信するアドレスも確認する必要があります。詳細については、「本番稼働アクセスのリクエスト (Amazon SESサンドボックスからの移動)」を参照してください。
Amazon EC2インスタンスから E メールを送信SESするために Amazon を使用している場合は、次の手順も実行する必要があります。
-
E メールプロバイダーを受信して E メールを受け入れるには、Amazon EC2インスタンスに Elastic IP アドレスを割り当てる必要がある場合があります。詳細については、「Amazon ユーザーガイド」の「Amazon EC2 Elastic IP アドレス」を参照してください。 EC2
-
Amazon Elastic Compute Cloud (Amazon EC2) は、デフォルトでポート 25 経由の E メールトラフィックを制限します。Amazon からSMTPエンドポイント経由で E メールを送信する際のタイムアウトを避けるためにEC2、これらの制限の削除をリクエストできます。詳細については、 AWS ナレッジセンターの「Amazon EC2インスタンスまたは AWS Lambda 関数からポート 25 の制限を削除する方法
」を参照してください。 または、このセクションの手順を変更して、ポート 25 ではなく、ポート 587 を使用することもできます。
Sendmail を設定する
Amazon を使用して E メールを送信するように Sendmail を設定するには、このセクションのステップを完了しますSES。
重要
このセクションの手順では、Amazon を米国西部 (オレゴン) SESで使用することを前提としています AWS リージョン。別のリージョンを使用する場合は、この手順で email-smtp.us-west-2.amazonaws.com のすべてのインスタンスを目的のリージョンのSMTPエンドポイントに置き換えます。Amazon AWS リージョン がSES利用可能な URLs のSMTPエンドポイントのリストについては、「」の「Amazon Simple Email Service (Amazon SES)」を参照してくださいAWS 全般のリファレンス。
Sendmail を設定するには
-
ファイルエディタで、ファイル
/etc/mail/authinfo
を開きます。このファイルが存在しない場合は、作成します。次の行を /etc/mail/authinfo に追加します。
AuthInfo:
email-smtp.us-west-2.amazonaws.com
"U:root" "I:smtpUsername
" "P:smtpPassword
" "M:PLAIN"上の例に、以下の変更を加えます。
-
置換
email-smtp.us-west-2.amazonaws.com
使用する Amazon SESSMTPエンドポイントを使用します。 -
置換
smtpUsername
Amazon SES SMTP ユーザー名。 -
置換
smtpPassword
Amazon SESSMTPパスワードを使用します。
注記
SMTP サインイン認証情報は、 AWS アクセスキー ID とシークレットアクセスキーとは異なります。SMTP サインイン認証情報の取得の詳細については、「」を参照してくださいAmazon SESSMTP認証情報の取得。
終了したら、
authinfo
を保存します。 -
-
コマンドラインで、以下のコマンドを入力して
/etc/mail/authinfo.db
ファイルを生成します。sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
-
コマンドラインで、次のコマンドを入力して、Amazon SESSMTPエンドポイントへのリレーのサポートを追加します。
sudo sh -c 'echo "Connect:
email-smtp.us-west-2.amazonaws.com
RELAY" >> /etc/mail/access'前のコマンドで、 を置き換えます。
email-smtp.us-west-2.amazonaws.com
使用する Amazon SESSMTPエンドポイントのアドレス。 -
コマンドラインで、次のコマンドを入力して /etc/mail/access.db を再生成します。
sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
-
コマンドラインで、次のコマンドを入力して
sendmail.cf
ファイルとsendmail.mc
ファイルのバックアップを作成します。sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
-
MAILER()
定義の前に、次の行を /etc/mail/sendmail.mc ファイルに追加します。define(`SMART_HOST', `
email-smtp.us-west-2.amazonaws.com
')dnl define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl MASQUERADE_AS(`example.com
')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl上のテキストで、次の操作を行います。
-
置換
email-smtp.us-west-2.amazonaws.com
使用する Amazon SESSMTPエンドポイントを使用します。 -
置換
example.com
E メールの送信に使用するドメイン。
終了したら、ファイルを保存します。
注記
Amazon はデフォルトでポート 25 経由の通信EC2を制限します。Amazon EC2インスタンスで Sendmail を使用している場合は、E メール送信制限の削除リクエスト
を完了する必要があります。 -
-
コマンドラインで、以下のコマンドを入力してsendmail.cfを書き込み可能にします。
sudo chmod 666 /etc/mail/sendmail.cf
-
コマンドラインで、以下のコマンドを入力してsendmail.cfを再生成します。
sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
注記
「コマンドが見つかりません」や「そのようなファイルまたはディレクトリはありません」などといったエラーが発生した場合は、
m4
パッケージとsendmail-cf
パッケージがシステムにインストールされていることを確認します。 -
コマンドラインで、以下のコマンドを入力してsendmail.cfの権限を読み取り専用にリセットします。
sudo chmod 644 /etc/mail/sendmail.cf
-
コマンドラインで、以下のコマンドを入力して Sendmail を再起動します。
sudo /etc/init.d/sendmail restart
Linux または Sendmail のバージョンによって、上記がうまくいかない場合は、以下を試してください。
sudo su service sendmail restart
-
以下の手順を実行して、テスト E メールを送信します。
-
コマンドラインで、以下のコマンドを入力します。
/usr/sbin/sendmail -vf
sender@example.com
recipient@example.com
置換
sender@example.com
送信元 E メールアドレス。置換recipient@example.com
To アドレス。終了したら、Enter キーを押します。 -
以下のメッセージの内容を入力します。各行の終わりで Enter キーを押します。
From:
sender@example.com
To:recipient@example.com
Subject: Amazon SES test email This is a test message sent from Amazon SES using Sendmail.E メールの内容を入力し終わったら、Ctrl+D キーを押して送信します。
-
-
受取人の E メールクライアントで E メールをチェックします。E メールが見つからない場合は、迷惑メールフォルダを確認します。それでも E メールが見つからない場合は、メールサーバー上の Sendmail ログを確認します。ログは /var/log/mail.log または /var/log/maillog にあることがよくあります。