VM上のubuntuからsendmailを使ってメールを送信します。
環境
OS ubuntu22.04 (Windows上のVMで動作)
(ubuntuのIP192.168.19.128)
Webサーバ apache2.4.52
PHP 8.1.2
sendmailをインストールする
次のコマンドを実行してsendmailパッケージをインストールします
$ > sudo apt update
$ > sudo apt install sendmail
次のコマンドを入力してPHPの設定ファイルを編集し、メールが送信できるようにします。
$ > sudo nano /etc/php/8.1/apache2/php.ini
次の行のコメントを外して、編集します
#sendmail_path =
↓
sendmail_path = /usr/sbin/sendmail -t -i
次のコマンドを実行して、apacheを再起動すれば準備完了です。
$ > sudo service apache2 restart
メール送信を行うPHPを実行する
次のPHPプログラムを配置して、パーミッションを705に変更しました。
<?php
$to = "*****@****.com";//送信先メールアドレス
$subject = "テスト email";//メールタイトル
$message = "テストメールです";
//本文
// Additional headers
$headers = "From: ****@****.com" . "\r\n" .
"Reply-To: ****@****.com" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
// Send email
if (mail($to, $subject, $message, $headers)) {
echo "Email sent successfully";
} else {
echo "Email sending failed";
}
?>
※メールのあて先は自身のメールに変更してください。
早速実行し、メールを送信します。
受信したメールがこちらです。
受信したテストメール
よく見ると送信者のメールアドレスが、「****@****.com」で送られているからか、迷惑メールとして扱われていますが、受信はできています。ドメインのチェック無しでメール送信をしている点が怖いのですが、動作は確認できました。