mb_sendmailでBccに自身をつけて送信控えをとっておく
2023-12-15 記載
概要 : 管理報告用メールアドレス svXX.cloudfree.ne.jp でメールを送ってみる
Keyword : mb_sendmail
メールを送る方法としてビルトイン命令が3種あります。
mb_sendmail、sendmail、およびmail。
どう違うかChatGPTに尋ねてみました。
linuxサーバにて、mb_sendmailとsendmailとmailはどう違いますか?
---ChatGPT3.5
mb_sendmail、sendmail、およびmailは、すべてメール送信に関連する異なる方法です。
mb_sendmail
は、マルチバイト文字列をサポートするためのPHPの関数です。これは、PHPでメールを送信するための機能であり、メールを送信する際に使用されます。sendmail
は、UNIXおよびLinuxシステムで一般的に使用される、メールを送信するための標準的なコマンドラインユーティリティです。これは、コマンドラインから直接メールを送信するために使用されます。mail
もUNIXおよびLinuxシステムで使用されるコマンドラインユーティリティであり、簡易的なメール送信を行います。mail
コマンドは、テキストベースのメールを送信するための簡単な方法を提供します。
これらのツールはそれぞれ異なる環境や用途で使用されますが、全てメール送信に関連しています。
---
尋ね方が悪かったのか、いまひとつ違いのわからない答えでした。
日本語を扱うならmb_sendmailで送っておけば間違いなさそうです。
mb_language('ja');
mb_internal_encoding('UTF-8');
date_default_timezone_set("Asia/Tokyo");
setlocale(LC_ALL, 'ja_JP.UTF-8');
$to = 'test_dummy@gmail.dummy';
$subject = '日本語が表示されていますか?';
$message = "春はあけぼの。\nやうやう白くなりゆく山ぎは\nすこしあかりて";
$headers = "From: cfsid@svXX.cloudfree.ne.jp";
// メールを送信
$ret = mb_send_mail($to, $subject, $message, $headers);
var_dump($ret);
上記は無事に届きます。
cronでエラーがあると、このアカウントからメールが届きます。
本来、このメール機能はそういう用途で設けられていると思われます。
というのも受信はできないから。
外部からの受信はできませんが内部(?)ならOKでした。
$headers = "From: cfsid@svXX.cloudfree.ne.jp\r\n";
$headers = "Bcc: cfsid@svXX.cloudfree.ne.jp\r\n";
$ret = mb_send_mail($to, $subject, $message, $headers);
var_dump($ret);
とすると受信されてます。
cfsid
┗ Maildir
┣ cur
┣ new
┗ tmp
Maildir フォルダが作成されてnewに入ってました。
JISコードでしたけど。
Bccに自身宛先をつけておき、送信の控えとする手は使えそうです。