SendmailメールリレーとしてGmailを設定する
Sendmailは、Linuxシステムがコマンドラインからメールを送信できるようにするメールルーティングソフトウェアです。これにより、bashスクリプト、ホストされたウェブサイト、またはmailコマンドを使用してコマンドラインからメールを送信できます。この設定を利用できるもう一つの例は、バックアップの失敗などの通知目的です。
このガイドでは、Linux上のsendmailクライアントのリレーとしてGmailを設定する手順を詳しく説明します。SendmailはGmailアカウントに依存するように設定できる多くのユーティリティの一つに過ぎません。他にこの機能を持つものには、postfix、exim、ssmptなどがあります。ここにある指示は、主流のLinuxディストリビューションに対して機能するはずです。
このチュートリアルでは、あなたは学びます:
- Gmailの設定前提条件
- LinuxにSendmailとメールユーティリティをインストールする方法
- Sendmailの中継としてGmailを設定する方法
- コマンドラインからメールを送信して設定をテストする方法
LinuxでGmailをSendmailリレーとして設定する
Gmailの設定前提条件
GmailをSendmailのリレーとして設定するには、まずいくつかのことを実行する必要があります。
最初の前提条件は、明らかにあなたがGmailアカウントまたはGoogle Appsアカウント(本質的には自分の完全修飾ドメイン名を使用するGmailアカウント)を持っている必要があることです。
この記事のテスト中、私たちはGmailアカウントで「安全性の低いアプリのアクセスを許可する」という設定を有効にする必要がありました。あなたもこれを有効にする必要があるかもしれませんし、ないかもしれません。この設定を有効にする前に、Sendmailを使用してメールを送信しようとした際に、Googleから以下の通知を受け取りました:
Gmailリレーを使ってメールを送信すると、「アプリのセキュリティが低いためブロックされました」というメッセージが表示されることがあります。
私たちは、自動プロンプトを通じて、メールの試みが正当であること、そしてアカウントがハッキングされた結果ではないことを確認しなければなりませんでした。
問題を解決するために、このGmailサポート記事を読み、そこにあるリンクをクリックして「安全でないアプリのアクセスを許可」してください。
Gmailを使用するために、安全性の低いアプリ(Sendmail)を許可する設定を有効にしてください。
この設定を変更した後、Sendmailを使用して、構成したGmailリレーでメールを送信できるようになりました。あなたの環境によって結果は異なるかもしれないので、まずはこの設定を有効にせずにガイドを試してみるのが最善です。その後、必要であれば、戻って設定を有効にすることができます。
Sendmailをインストールする
ガイドに必要なSendmailパッケージをインストールするために、システムのパッケージマネージャを使用できます。以下の適切なコマンドを使用して必要なソフトウェアをインストールしてください。
Ubuntu、Debian、およびLinux MintにSendmailをインストールするには:
sudo apt install sendmail mailutils sendmail-bin
CentOS、Fedora、AlmaLinux、Red HatにSendmailをインストールするには:
sudo dnf install sendmail
Gmail認証ファイルを作成する
以下の手順に従って、SendmailのリレーとしてGmailを設定してください。
最初にすべきことは、ルートユーザーに昇格することです。これらのコマンドのほとんどは、必要なディレクトリを変更する場合でも、ルートアクセスを要求します。
sudo -iまたは、sudoがあなたのユーザーアカウントに対して構成されていない場合:
su次に、Gmail構成ファイルを保存する新しいディレクトリを作成し、そのディレクトリに移動します。
mkdir -m 700 /etc/mail/authinfo/ cd /etc/mail/authinfo/次に、nanoやお好みのテキストエディタを使って、認証情報を含む新しいファイルを作成します。シンプルにするために、私たちのファイルを
gmail-authと呼びます。nano gmail-authこのファイルの中に、以下のテンプレートを貼り付け、自分の情報に合わせて編集してください。具体的には、あなたのGmailアドレスとパスワードを入力してください。以下のパスワードの例では、‘P:’をそのままにしておく必要があります。これは実際のパスワードの一部ではありません。
AuthInfo: "U:root" "I:YOUR GMAIL EMAIL ADDRESS" "P:YOUR PASSWORD"変更を保存し、完了したらファイルを終了してください。
-
最後のステップは、上記の認証ファイルのためにハッシュマップを作成することです。
makemap hash gmail-auth < gmail-auth
Gmailの認証が設定されたので、Sendmailの設定に進むことができます。
Sendmailを設定する
次に、お好みのテキストエディタを使って
/etc/mail/sendmail.mcのファイルを編集します。nano /etc/mail/sendmail.mc次に、以下の行を最初の「MAILER」定義の行のすぐ上に貼り付けてください。これらの行をどこに置くかは非常に重要ですので、参考のために以下のスクリーンショットを見てください。
define(`SMART_HOST',`[smtp.gmail.com]')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_OPTIONS', `A p')dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(`authinfo',`hash -o /etc/mail/authinfo/gmail-auth.db')dnl変更をファイルに保存して、完了したら終了してください。
次のステップでは、sendmailの設定を再構築する必要があります。そのためには、次のコマンドを実行してください:
make -C /etc/mail今、私たちの変更がすべて反映されるようにSendmailサービスを再読み込みしてください。
systemctl restart sendmailサービスは完全修飾ドメイン名を解決しようとします。設定されていない場合、プロセスが1分間ハングすることがありますが、最終的には開始します。Sendmailサービスのステータスを確認して、発生したエラーのレポートを取得してください。
systemctl status sendmail
SendmailのGmailリレー設定
構成テスト
これでコマンドラインからmailコマンドを使ってメールを送信できるようになりました:
echo "Just testing my sendmail gmail relay" | mail -s "Sendmail gmail Relay" my-email@my-domain.com
Sendmailの設定が正しかったことを確認するために、自分にメールを送ってください。
再度、完全修飾ドメイン名の解決に問題がある場合、少し遅延を感じるかもしれません。それが正しく設定されているかどうか、あるいはドメイン名自体があるかどうかにかかわらず、メールは正常に送信されるはずです。
締めくくりの考え
このガイドでは、SendmailのメールリレーとしてGmailを構成する方法を見ました。これは、コマンドラインからメールを送信する必要があるときに実装するのに適した構成です。Bashスクリプトやメールを送信する必要があるウェブサイトにもうまく機能し、Gmailは信頼できるメールリレーとして機能します。唯一気を付けるべきことは、Gmailで「安全性の低いアプリ」の設定を構成する必要があるかもしれないということです。また、遅延を避けるために、システムを完全に修飾されたドメイン名で適切に構成しておくことが理想的です。



