添付ファイル付きの自動返信メールを作成しています。
本文・件名などは文字化けなく正しく表示されますが、添付ファイル部分と思われる箇所が以下のように表示されています。
▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼ ------=_Boundary_3806_5b7e718e2469f_ Content-Type: application/octet-stream; name="=?ISO-2022-JP?B?bWFudWFsX3dlYmgucGRm?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?ISO-2022-JP?B?bWFudWFsX3dlYmgucGRm?="
phpファイル内の該当箇所は以下の通りです。
原因は、色々と試してみたのですが解決しないので、教えていただけると幸いです。
php
1function send_dmail_webh($name, $mailto, $id, $product){ 2 mb_language("Japanese"); 3 mb_internal_encoding('SJIS'); 4 5//宛先 6 $mail_to = $mailto; 7 8 // 送信元アドレス 9 $mail_from = "aaa@exmple.com"; 10 $mime_type = "application/octet-stream"; 11 // マルチパートなので、パートの区切り文字列を指定 12 $boundary = '----=_Boundary_' . uniqid(rand(1000,9999) . '_') . '_'; 13 14 $filepath = "/files/manual_webh.pdf"; 15 $filename = basename( $filepath ); 16 17 18 19 $filename = mb_convert_encoding($filename, 'ISO-2022-JP'); 20 $filename = "=?ISO-2022-JP?B?" . base64_encode($filename) . "?="; 21 22 // ヘッダー 23 $headers = ""; 24 $headers .= "Content-Type: text/plain; charset=ISO-2022-JP\n"; 25 $headers .= "Content-Transfer-Encoding: 7bit\n"; 26 $headers .= "From:" . $mail_from; 27 $headers .="\n"; 28 29 //件名 30 $mail_subject = ""; 31 $mail_subject .="【". $product . "】案内"; 32 33 //本文 34 $mail_body = ""; 35 $mail_body .= $name . " 様\r\n\r\n"; 36 $mail_body .= "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n"; 37 38 // 添付ファイル 39 $mail_body .= "--{$boundary}\n"; 40 $mail_body .= "Content-Type: {$mime_type}; name=\"{$filename}\"\n" . 41 "Content-Transfer-Encoding: base64\n" . 42 "Content-Disposition: attachment; filename=\"{$filename}\"\n\n"; 43 $f_encoded = chunk_split(base64_encode($filebody)); 44 $mail_body .= $f_encoded . "\n\n"; 45 46 // 送信処理 47 mb_send_mail($mail_to, $mail_subject, $mail_body, $headers); 48}
aaa.com は実在するドメイン名なので example.com にするべきです。
phpでのメール送信に関して、参考にしたものはありますか?
ドメインに関しては修正しました。参考ページは、次のリンクです。https://qiita.com/KanaeYou/items/b096f8be1f5bbc5448fa
$filebodyが定義されていないように見えます
回答2件
あなたの回答
tips
プレビュー