PHPを使ってメールを送信する

PHP
受付メール

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」で送られているからか、迷惑メールとして扱われていますが、受信はできています。ドメインのチェック無しでメール送信をしている点が怖いのですが、動作は確認できました。