• ベストアンサー

CGIを使って、html形式のメールを送るには

CGIとsendmailを使ってメールを送りたいのですが、text形式のメールを送るのではなく、いろいろと問題はあると思いますがhtml形式のメールで送りたい場合、どのようにすればよいのでしょうか。たとえば、html形式でテーブルを使いたい場合などです。よろしくお願いいたします。

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

  • ベストアンサー
回答No.4

あ、そうだ。再度、補足です。これはラジオボタンを使用してフォームのデータをHTML形式で送った時のものです。$DATA_N[($_)]はnameの値で、$DATA_V[($_)]はvalueの値です。muxicさんがやりたいことが分からないので、取り合えず、ラジオボタンでデータを送信する場合のサンプルを送ってみました。

muxic
質問者

お礼

できました。ありがとうございました。助かりました。

その他の回答 (3)

回答No.3

先日、回答させて頂きましたが、その後、うまくいきましたか?念のため、補足しておきますね。 私がTABLEを使用した時に、変更した個所をそのままお書きしましょう。 sub sendmail { if (!open(OUT,"| $sendmail $mailto")) { &send_error; } print OUT "To: $mailto\n"; print OUT "From: $email\n"; print OUT "Subject: $subject\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "Content-Type: text/html; charset=\'ISO-2022-JP\'\n"; print OUT "\n\n"; if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; } print OUT "<HTML><HEAD></HEAD>\n"; print OUT "<body>\n"; print OUT "<CENTER><TABLE><TBODY>\n"; print OUT "<TR><TD colspan='2 align='center'><P><B><FONT size='3'>体験入学申し込み</FONT></B></P></TD></TR>\n"; foreach (0..$count-1) { print OUT "<TR><TD><FONT size='2'>&nbsp;$DATA_N[($_)]</FONT></TD><TD><FONT size='2'>&nbsp;$DATA_V[($_)]</FONT></TD></TR>\n"; } print OUT "</TBODY></TABLE></CENTER>\n"; print OUT "</body></html>\n"; exit; という感じです。頑張って挑戦してみてくださいね。

回答No.2

CGIプログラム中の送信する為のメール文書を生成するところに、 Content-type: text/plain; charset="ISO-2022-JP" といった表記が有るかと思いますが、そこのところ Content-type: text/html; charset="ISO-2022-JP" に変更すればできますよ。

  • KUJIYA
  • ベストアンサー率34% (53/152)
回答No.1

htmlメールは、htmlファイルが添付されているメールだと思います。 参考URLに添付メールを送信するフォームがあります。 もしフォーム入力された内容をhtmlに反映させたい場合は、 指定のhtmlの属性を666にして、cgiからhtmlを書かせて それを添付させるようにすればいいかと思います。 もっと簡単な方法もありそうですが、私にはこんなやり方しか 思いつきませんでした。

参考URL:
http://www.rescue.ne.jp/cgi/form2mail/
muxic
質問者

お礼

ありがとうございます。

関連するQ&A