ホームページ >バックエンド開発 >PHPチュートリアル >phpでpdfを添付してメールを送信すると長い文字列が表示されます解決方法を教えてください。
php で PDF を添付したメールを送信すると、長い文字列が表示されます。
RT 送信されたメールの添付ファイルは、 という長い文字列です。
メールを送信するためのコードは次のとおりです:
関数 mail($mailto, $userid, $data){
グローバル $dsql,$cfg_adminemail,$cfg_webname,$cfg_basehost,$cfg_memberurl;
$mailtitle = $cfg_webname.":通知";
$file=fopen("D:/xampp/htdocs/pdftemp/dsfasdf.pdf","r");
$fileName=$data['oid'].'.pdf';
$mimeType ="アプリケーション/pdf"
$boundary = "nextpart_".uniqid("") //区切り文字 1
$boundary2 = "nextpart2_".uniqid("") //区切り文字 2
;
//メールヘッダー
$headers = "送信者: ".$cfg_adminemail."rn返信先: $cfg_adminemail";
$headers .= "コンテンツ タイプ: マルチパート/混合; 境界="$boundary1"rn";
// ファイルを読み取ります
$read = fread($file, filesize("D:/xampp/htdocs/pdftemp/dsfasdf.pdf"));
//base64 メソッドを使用してエンコードします
$read = Base64_encode($read);
//この長い文字列を 1 行あたり 76 文字からなる小さな部分に切ります
$read = chunk_split($read);
// 以下はメール本文のテキストです
$mailbody = "--$boundary1----$boundary2
コンテンツタイプ: text/plain;charset=iso-8859-1;
コンテンツ転送エンコーディング: 8 ビット";
$mailbody .= '宛先: '.$userid.',df250b2156c434f3390392d09b1c9563
df250b2156c434f3390392d09b1c9563
これはメール本文--$boundary2--';
です
//以下は添付部分です
$mailbody .="--$boundary1
コンテンツタイプ: text/html; name=$fileName
コンテンツの配置: インライン; ファイル名=$ファイル名
コンテンツ転送エンコーディング: 8bit
$read
--$boundary1--";
$status = smail($mailto,$mailtitle,$mailbody,$headers);
setMail($mailto, $mailtitle, $mailbody, $headers, $status);
$status を返します;
}
php