令和 3年 2月 17日
フォームメール送信、PHP7.4
-------------------------------------------------------
Apache(httpd) + PHP7.4 + Postfix が稼働しいる事。
PHPのVerUpでは、Postfixが削除されるので確認する必要がある。
# yum install postfix <- MariaDB10.5、PHP7.4 にしたので、再インストール。
パッケージ 2:postfix-2.10.1-9.el7.x86_64 はインストール済みか最新バージョンです
何もしません
Postfix は、デフォルトのままで良い。
# systemctl status postfix
# systemctl start postfix
# systemctl restart postfix
# systemctl restart httpd
# systemctl enable postfix <-起動時の自動実行
# setsebool -P httpd_can_sendmail=1 <- PHPからmd_send_mailを実行するため
mail コマンドで送信できることを確認する。
# echo "mail-send-test1" | mail -s "test1" info@parknet.co.jp
一番簡単なサンプルのメール送信プログラムを実行してみる。
/var/www/html に WinCSPでファイル mail_sd_mail.php を転送して確認する。
http://xxx.xxx.xxx.xxx/mail_sd_test.php
mail_sd_mail.php
-------------------------------------------------------------------------------------
メール送信フォーム
";
if (mb_send_mail($mailto, $subject, $content, $mailfrom))
{
echo "メールを送信しました。";
}
else
{
echo "メールの送信が失敗しました。";
}
?>
-------------------------------------------------------------------------------------
フォームメールのプログラムで確認を行う。
form_mail : Postfix の 初期時の設定のローカルから送信する。
: http://xxx.xxx.xxx/form_mail/mail_test.html
mail_send.php にある送信先のメールアドレスを変更する。
$to = "info@parknet.co.jp"; <- 送信先メールアドレス。
/var/www/html/form_mail/
mail_test.html、mail_data.php、mail_send.php を転送します。
ブラウザからメール送信の試験を行います。
http://xxx.xxx.xxx.xxx/form_mail/mail_test.html
上記で指定したメールアドレスに日本語で送信されていることを確認して下さい。
-------------------------------------------------------------------------------------
外部にあるメールサ-バーにSMTP認証して送信する方法。
qdmail というフリーソフトを使用します。
PHP7.4 に対応する修正をしてある2つの関数ファイル。
qdmail.php qdsmtp.php
送信するために記述するファイル。
smatpauth.php
上記の3つのファイルを下記のフォルダに転送します。
/var/www/html/qdmail/
メール送信方法。
http://xxx.xxx.xxx.xxx/qdmail/smtpauth.php
smtpauth.php
-------------------------------------------------------------------------------------
errorDisplay( false );
$mail -> smtp( true );
$param = array(
'host' => 'mail.parknet.co.jp',
'port' => 587,
'from' => 'postmail@mail.parknet.co.jp',
'protocol' => 'SMTP_AUTH',
'user' => 'postmail',
'pass' => 'past1234'
);
$mail -> timeZone( '+0900' ); // 日本時間の場合
$mail -> smtpServer($param);
$mail->to('info@parknet.co.jp');
$mail->from('postmail@mail.parknet.co.jp');
$mail->subject('qdmail お知らせ');
$mail->text('これはメールの送信テストです。');
if ( $mail->send() ) {
echo 'メール送信が成功しました。';
} else {
echo 'メール送信が失敗しました。';
}
?>
Postfix の最小限の設定をするなら。
-------------------------------------------------------------------------------------
/etc/postfix/master.cf <- サブミッションポートの準備(587番)
submission inet n - n - - smtpd <- #をとる。
# firewall-cmd --permanent --add-port=587/tcp --zone=public <- 587番をあける。
# systemctl restart postfix
# systemctl restart httpd
これで設定が完了。
# rebbot <- 念のためサーバーを再起動した方が良い
-------------------------------------------------------------------------------------