Sendmailと電子メール配信の統合

送信メールを使用して、電子メール配信サービスを使用して電子メールを送信します。

電子メール配信を介した電子メール送信のためのSendmailの構成

Sendmailは、インターネットを介した電子メール転送に使用されるSimple Mail Transfer Protocolなど、様々な種類のメール転送および配信方法をサポートする汎用のインターネットワーク電子メール・ルーティング機能です。Sendmailを使用すると、電子メール配信を使用して電子メールを送信できます。Sendmailを使用する前に、SendmailアプリケーションでOracle Cloud Infrastructure Email Deliveryを構成する必要があります。

重要

これらの手順には、便宜上サンプル・コードが含まれており、参照用として使用する必要があります。クライアント・サポートについては、Sendmailカスタマ・サポートに連絡する必要があります。
ノート

次のステップでは、Oracle Cloud Infrastructure Email Delivery経由で電子メールを送信するようにSendmailを構成します。これらのステップは、Oracle Linux Serverリリース7.9のコンピュート・インスタンスとSendmail-8.14.7-6.el7.x86_64でテストされました。

Sendmailで電子メール配信との統合を有効にするには:

  1. 電子メール配信が電子メールを送信するように構成されていることを確認します。開始を参照してください。

    ノート

    電子メール配信を使用するようにSendmailを構成するには、SMTP資格証明が必要です。SMTP資格証明の生成時には、ユーザー名とパスワードを書き留めてください。

  2. 次のupdateコマンドおよびinstallコマンドを実行します:

    sudo yum update
    sudo yum install sendmail sendmail-cf m4 cyrus-sasl-plain
  3. /etc/mail/authinfoを更新します。次のコマンドを実行します。

    sudo vi /etc/mail/authinfo
    ノート

    /etc/mail/authinfoが存在しない場合は、sudo vi /etc/mail/authinfoコマンドを実行すると作成できます。

    次の行を追加します。

    AuthInfo:<SMTP connection endpoint> "U:root" "I:<username from smtp credentials>" "P:<password from smtp credentials>" "M:PLAIN"
  4. /etc/mail/authinfo.dbファイルを生成します。

    次のコマンドを実行します。

    sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
  5. Oracle Cloud Infrastructure Email DeliveryのSMTPエンドポイントへのリレーのサポートを追加します。

    次のコマンドを実行します。

    sudo sh -c 'echo "Connect:<SMTP connection endpoint> RELAY" >> /etc/mail/access'
  6. /etc/mail/access.dbを再生成します。

    次のコマンドを実行します。

    sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
  7. 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'
  8. /etc/mail/sendmail.mcファイルを更新します。

    次のコマンドを実行します。

    sudo vi /etc/mail/sendmail.mc

    MAILER()定義を検索します。

    /MAILERと入力し、[ENTER]を押します。

    挿入モードで、MAILER()定義の前に次の設定を追加します:

    define(`SMART_HOST', `<SMTP connection endpoint>')dnl
    define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
    define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
    FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl
    MASQUERADE_AS(`<sending_domain>')dnl
    FEATURE(masquerade_envelope)dnl
    FEATURE(masquerade_entire_domain)dnl

    挿入モードを無効にします。

  9. Sendmailを書込み可能にします。

    次のコマンドを実行します。

    sudo chmod 666 /etc/mail/sendmail.cf
  10. sendmail.cfを再生成します。

    次のコマンドを実行します。

    sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
    ノート

    「コマンドが見つかりません」、「該当するファイルやディレクトリはありません」などのエラーが表示された場合は、m4およびsendmailパッケージがシステムにインストールされていることを確認してください。

  11. sendmail.cfの権限を読取り専用にリセットします。

    次のコマンドを実行します。

    sudo chmod 644 /etc/mail/sendmail.cf
  12. Sendmailを再起動します。

    次のコマンドを実行します。

    sudo /etc/init.d/service sendmail restart
  13. テスト電子メールを送信して、構成をテストします。

    次のコマンドを実行します。

    /usr/sbin/sendmail -vf <from_email_address> <recipient_email_address>

    電子メールの詳細を入力します。各行の最後で[Enter]を押します。

    例:

    From: <from_email_address>
    To: <recipient_email_address>
    Subject: OCI Email Delivery test email
    This is a test message sent from OCI Email Delivery using Sendmail.

    [Ctrl] + [D]を押して、電子メールを送信します。

  14. テスト電子メールの受信を確認します。

    ノート

    問題のトラブルシューティングを行うには、メール・サーバー上のSendmailログ(/var/log/mail.logに存在)を確認します。