サイト管理人Blog

cloudfreeで「さぁ始めましょう♪」

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に自身宛先をつけておき、送信の控えとする手は使えそうです。

投稿へのコメントは コチラ(掲示板) へお願いします。

サイト管理人Blog