[PHP-users 30191] mail送信で教えてください
KKuji_Y2a
kkuji @ mwb.biglobe.ne.jp
2006年 8月 30日 (水) 22:09:08 JST
添付ファイルを持ったmail送信をしたくて、
mime typeをheader情報で入れているのですが、
あるサーバーでは、勝手につけてしまいます。
(例)
X-Mailer: PHP/4.3.6
MIME-version: 1.0
Content-Type: multipart/mixed;
boundary="7b743e6bc1a3868603f6c439135fb17a"
Mime-Version: 1.0
(ここが余分です)
Content-Type: text/plain; charset=ISO-2022-JP
別のサーバーではOKです。
どうすれば、自分の設定したmime typeだけにすることができるでしょう?
ini か何かの設定でしょうか?
もっとローレベルの手段でmail送信をするしかないのかな、
と悩んでいます。
ヒントでもいいので誰か教えてください。
KK@IB
(ソースコードがあったほうがよいようなので、掲載
(Webから借りてきたものを加工したものです):)
<?php
mb_internal_encoding("EUC-JP");
$email = "xxx @ mwb.biglobe.ne.jp";
$upfile = "./title.gif";
$upfile_type = "image/gif";
$upfile_name = "title.gif";
$name = "名前";
$to = "ooo @ ggg.com";
$subject = "てすと";
$subject2 = mb_encode_mimeheader($subject, "ISO-2022-JP", "B");
$boundary = md5(uniqid(rand())); //バウンダリー文字(パートの境界)
//メッセージ送信
$msg = "";
$from = $email;
$header = "From: $from\n";
$header .= "Reply-To: $from\n";
$header .= "X-Mailer: PHP/".phpversion()."\n";
$header .= "MIME-version: 1.0\n";
if(file_exists($upfile)){ //アップファイルがあれば
$header .= "Content-Type: multipart/mixed;\n";
$header .= "\tboundary=\"$boundary\"\n";
$msg .= "This is a multi-part message in MIME format.\n\n";
$msg .= "--$boundary\n";
$msg .= "Content-Type: text/plain; charset=ISO-2022-JP\n";
$msg .= "Content-Transfer-Encoding: 7bit\n\n";
}else{
$header .= "Content-Type: text/plain; charset=ISO-2022-JP\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
}
$msg .= "お名前 = $name\n";
$msg .= "E-mail = $email\n";
if(file_exists($upfile)){
$fp = fopen($upfile, "r") or die("error"); //ファイルの読み込み
$contents = fread($fp, filesize($upfile));
fclose($fp);
$f_encoded = chunk_split(base64_encode($contents)); //エンコードして分割
$msg .= "\n--$boundary\n";
$msg .= "Content-Type: " . $upfile_type . ";\n";
$msg .= "\tname=\"$upfile_name\"\n";
$msg .= "Content-Transfer-Encoding: base64\n";
$msg .= "Content-Disposition: attachment;\n";
$msg .= "\tfilename=\"$upfile_name\"\n\n";
$msg .= "$f_encoded\n";
}
$msg .= "--$boundary--";
if(mail($to, $subject2, $msg, $header)){ //ファイル添付に対応
print "メールが正常に送信されました(^o^)丿<br><br>\n";
//print "<INPUT type=button name=close value=閉じる
onclick=window.close()>\n";
} else {
print "メールの送信に失敗しました(>_<)もう一度やり直して下さい。<br><br>\n";
//print "<INPUT type=button name=close value=閉じる
onclick=window.close()>\n";
}
?>
PHP-users メーリングリストの案内