- ベストアンサー
CGIを使って、html形式のメールを送るには
CGIとsendmailを使ってメールを送りたいのですが、text形式のメールを送るのではなく、いろいろと問題はあると思いますがhtml形式のメールで送りたい場合、どのようにすればよいのでしょうか。たとえば、html形式でテーブルを使いたい場合などです。よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
あ、そうだ。再度、補足です。これはラジオボタンを使用してフォームのデータをHTML形式で送った時のものです。$DATA_N[($_)]はnameの値で、$DATA_V[($_)]はvalueの値です。muxicさんがやりたいことが分からないので、取り合えず、ラジオボタンでデータを送信する場合のサンプルを送ってみました。
その他の回答 (3)
- ponsuke777
- ベストアンサー率66% (2/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'> $DATA_N[($_)]</FONT></TD><TD><FONT size='2'> $DATA_V[($_)]</FONT></TD></TR>\n"; } print OUT "</TBODY></TABLE></CENTER>\n"; print OUT "</body></html>\n"; exit; という感じです。頑張って挑戦してみてくださいね。
- ponsuke777
- ベストアンサー率66% (2/3)
CGIプログラム中の送信する為のメール文書を生成するところに、 Content-type: text/plain; charset="ISO-2022-JP" といった表記が有るかと思いますが、そこのところ Content-type: text/html; charset="ISO-2022-JP" に変更すればできますよ。
- KUJIYA
- ベストアンサー率34% (53/152)
htmlメールは、htmlファイルが添付されているメールだと思います。 参考URLに添付メールを送信するフォームがあります。 もしフォーム入力された内容をhtmlに反映させたい場合は、 指定のhtmlの属性を666にして、cgiからhtmlを書かせて それを添付させるようにすればいいかと思います。 もっと簡単な方法もありそうですが、私にはこんなやり方しか 思いつきませんでした。
お礼
ありがとうございます。
お礼
できました。ありがとうございました。助かりました。