3月 9, 2022

UbuntuにSendmailをインストールして設定する方法

メール配信をルーティングまたは中継する電子メールサーバーを使用して電子メールを送信するためにUbuntuにSendmailをインストールして設定する方法。

Sendmailは、サーバーまたはシェルコマンドを使用して電子メールをルーティングするために使用されるopensource Mail Transfer Agent(MTA)です。 Sendmailを使用してSMTPを構成することもできます。

このガイドでは、UbuntuにSendmailをインストールして設定する方法を学びます。 また、SMTPを設定し、PHPで設定します。

あなたのビジネスのための最高のホス

プラットフォーム レビュー 価格
クラウドウェイズ ★★★★★ $10
Kinsta–Googleクラウド ★★★★★ $30

サーバー内のサーバーパッケージ

SSHを更新し、パッケージを最新バージョンに更新します。

sudo apt updatesudo apt upgrade

Install Sendmail

Sendmailはubuntuリポジトリで利用できるため、apt installコマンドを使用して直接インストールできます。

sudo apt install sendmail

ホスト名の設定

/etc/hostsファイルを編集してホスト名を追加します。

sudo nano /etc/hosts

127.0.0.1で始まる行に、以下のように最後にhostnameを追加します。 これは1行にする必要があります。

127.0.0.1 localhost hostname

SMTPを設定

SMTP設定用に/etc/mail内に新しいディレクトリを作成します。

sudo mkdir /etc/mail/authinfo

正しい権限を設定します。

sudo chmod -R 700 /etc/mail/authinfo

新しく作成されたディレクトリ内にSMTP認証用の新しいファイルを作成します。

cd /etc/mail/authinfosudo nano smtp-auth

次の行を貼り付け、メールアドレスをログインメールに置き換え、パスワードをパスワードに置き換えます。

AuthInfo: "U:root" "I:email-address" "P:password"

CRTL + Xに続いてYENTERを押してファイルを保存して終了します。

上記で作成した認証用のハッシュデータベースマップを作成します。

sudo makemap hash smtp-auth < smtp-auth

SMTPの設定

sendmail設定ディレクトリに移動し、sendmail.mcファイルを編集します。

cd /etc/mailsudo nano sendmail.mc

MAILER_DEFINITIONS行の直後に以下の設定を追加します。

smtp-hostをSMTPホスト名に置き換えます。

define(`SMART_HOST',`')dnldefine(`RELAY_MAILER_ARGS', `TCP $h 587')dnldefine(`ESMTP_MAILER_ARGS', `TCP $h 587')dnldefine(`confAUTH_OPTIONS', `A p')dnlTRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlFEATURE(`authinfo',`hash -o /etc/mail/authinfo/smtp-auth.db')dnl

設定は下のスクリーンショットと同じようになります。

SMTP設定

ここで、ファイルを保存してエディタを終了します。

Sendmail設定の再構築

設定が完了したら、makeコマンドを使用してSendmail設定を再構築する必要があります。

cd /etc/mailmake

設定が再構築されたら、Sendmailを再起動する必要があります

Sendmailを再起動します

次のコマンドを使用してSendmailを再起動します。

sudo /etc/init.d/sendmail restart

SMTPを使用して電子メールを送信できるようになりました。

追加設定

PHPを使用した設定

PHPでSendmailを使用するには、php.iniファイルにsendmailパスを追加する必要があります。

sudo nano /etc/php/version/fpm-or-apache2/php.ini

ファイルの一番下に以下を追加します。

sendmail_path= /usr/sbin/sendmail -t -i

変更を有効にするには、ApacheまたはPHP-FPMを再起動します。

sudo service apache2 restartorsudo service php8.0-fpm restart

認証なしのSendmail SMTP設定

包みますSMTP用にサーバー IPをホワイトリストに登録していて、認証なしで電子メールを送信できる場合は、以下の方法に従います。

上記で作成したsmtp-authファイルを作成する必要はありません。

sendmail.mcファイルを直接編集し、次の変更を加えることができます。

cd /etc/mailsudo nano sendmail.mc

最後に以下の構成を追加します。

smtp-hostをSMTPホスト名に置き換えます。

define(`SMART_HOST',`smtp-host')dnldefine(`RELAY_MAILER', `esmtp')dnldefine(`RELAY_MAILER_ARGS', `TCP $h 587')dnl

ファイルを保存し、設定を再構築してSendmailを再起動します。

cd /etc/mailmakesudo /etc/init.d/sendmail restart

結論

これで、UbuntuでSMTPを使用して中継するようにSendmailをインストールして設定する方法を学びました。

コメントを残す

メールアドレスが公開されることはありません。