[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 メーリングリストの案内