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
に続いてY
とENTER
を押してファイルを保存して終了します。
上記で作成した認証用のハッシュデータベースマップを作成します。
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
設定は下のスクリーンショットと同じようになります。
ここで、ファイルを保存してエディタを終了します。
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をインストールして設定する方法を学びました。