フォームから各データ(件名[subject]、本文[body]、差出人メアド[from]、差出人の名前[fromname])をPOSTで受け取り、そのデータを使ってphpmailerで送信すると、差出人メールアドレスだけがPOSTされたものとは異なるメールアドレスでメールが届きます。
そのメールアドレスはデフォルトのEメールアドレス(サーバーを借りた時点で付与されたもの)で、自分でつくったメールアドレスではありません。ちなみに共用サーバーです。
受信したメールの差出人のメールアドレスをポストされたデータにしたいのですが、何かやり方があるのでしょうか。
以下がそのスクリプトですが、さくらのVPSで以下スクリプトを試したところ、差出人はPOSTされたデータのメールアドレスが返り、意図したとおりの結果が得られます。サーバー環境に依存する問題なんでしょうか。。
include('./class.phpmailer.php');
mb_language("japanese");
mb_internal_encoding("UTF-8");
$to = 'to@test.com';
$subject = $_POST['subject'];
$body= $_POST['body'];
$from = $_POST['from'];
$fromname = $_POST['fromname'];
$attachfile = '/var/www/html/hoge/fuga.txt';
$mail = new PHPMailer();
$mail->CharSet = "iso-2022-jp";
$mail->Encoding = "7bit";
$mail->AddAddress($to);
$mail->From = $from;
$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","UTF-8"));
$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8"));
$mail->Body = mb_convert_encoding($body,"JIS","UTF-8");
//添付ファイル追加
$mail->AddAttachment($attachfile);
if(!$mail->Send()){
echo "メールの送信が出来ませんでした。";
}
echo "お問い合わせ有難うございました。";
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/27 11:50