• ベストアンサー

sendmailについて

CGIからサーバにあるsendmailを使おうとしているのですが、分からない点があります。 メール自体は、きちんと送信されるのですが、To以外のヘッダーが本文と一緒に送信されてしまいます。 メールの送信者欄と件名欄が空白になってしまい困ってます。分かる人がいましたら教えてください。 下記がソースです。 &jcode'convert(*subject,'jis'); &jcode'convert(*message,'jis'); open(MAIL,"|$sendmail -t -f $master_mail"); print MAIL "To: $mail\n"; print MAIL "From: $master_mail\n"; print MAIL "Subject: $subject\n"; print MAIL "Contnt-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n\n"; print MAIL "$message\n"; close(MAIL);

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

$mailを最後にしたら大丈夫ということはNo1さんが正解かもしれませんね。 $mailがテキストファイルから読み出したものなら可能性は高いと思います chomp($mail)で改行を削除してみてはどうでしょう &jcode'convert(*subject,'jis'); &jcode'convert(*message,'jis'); chomp($mail); open(MAIL,"|$sendmail -t -f $master_mail"); print MAIL "To: $mail\n"; print MAIL "From: $master_mail\n"; print MAIL "Subject: $subject\n"; print MAIL "Contnt-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n\n"; print MAIL "$message\n"; close(MAIL);

mabomo
質問者

お礼

お返事遅くなりました。早速、改行を削除して順番を色々入れ替えてみた所、ヽ(`○´)/ できました。 初心者みたいな質問ですみませんでした。 プログラムは、ちょっとしたことでバグが出るので気をつけなきゃいけないなぁと実感しました。 ありがとうございました。

その他の回答 (1)

  • guci-ok
  • ベストアンサー率33% (49/146)
回答No.1

print MAIL "To: $mail\n"; の$mail自体に「\n」が入ってるとか。 一度、中身をファイルに書いてみては?

mabomo
質問者

お礼

ありがとうございます。 何とか治りました。原因は詳しく分からないのですが ヘッダーの中のTo・From・Subjectなどの順番を色々入れ替えたら出来ました。本とか他のWEBページを参考にしたのですが、やはりそのようなことは書いてなく順番もばらばらでした。 何か規則性があるのでしょうか? 下記が訂正したソースです。 &jcode'convert(*subject,'jis'); &jcode'convert(*message,'jis'); open(MAIL,"|$sendmail -t -f $master_mail"); print MAIL "Mime-Version: 1.0\n"; print MAIL "Contnt-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "From: $master_mail\n"; print MAIL "Subject: $subject\n"; print MAIL "To: $mail\n\n"; print MAIL "$message\n"; close(MAIL);

関連するQ&A