• ベストアンサー

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

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

  • muxic
  • お礼率37% (97/259)
  • CGI
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
回答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

  • CGIでメール送信がしたい

    ホームページからメールを出すCGIを作ろうとしています。 コマンドからCGIを直接実行すると問題なく動くのですが、formから動かすと Premature end of script headers: ・・・・ というエラーがでます。いろいろ探してみたんですが、分かりませんでした。 改行コードは端末からviで書いてますので、問題は無いだろうと思っているんですが… エラーはでますが、メールは送っているようです。 コマンドから実行した場合の差出人はroot@hoge.netになっているんですが、 ページから実行させたものはanonymous@hoge.netになります。 きっと勉強不足でとんでもないことをやっているんだろうと思うのですが、 探した範囲には答えがありませんでした。 どこが悪いのか教えてください。よろしくお願いします。 サーバーはVine2.6R1でApacheを使っています。 (test.html) <html> <body> <form name="down" action="/cgi-bin/test/a.cgi" method="post"> <input size="20" type="text" name="a_sel"> <input type="submit"> </body> </html> (a.cgi) #!/usr/bin/perl require '../mimew.pl'; require '../jcode.pl'; $sendmail = "/var/qmail/bin/sendmail"; $master_id = "ho\@hoge.net"; $msg="メッセージ"; &jcode'convert(*msg,'jis'); open (ML,"| $sendmail $master_id"); print ML $msg; close(ML); exit;

    • ベストアンサー
    • CGI
  • CGIのフォームメールを使いたいのですが。

    少し凝ったHPを作成したく、本などを購入し、CGIについて調べてます。 カウンタとか掲示板などは問題ないのですが、フォームメールになると、 sendmailが許可されてないとダメだということで、今現在利用している、 ZEROというプロバイダーでは無理のようです。 sendmailが使えるプロバイダーは一般的なものにはないのか、 それと、メールとHPスペースの利用(接続は他で)のみのサービスで 安いところがないでしょうか。いろいろ探してますが、sendmailまでの記述が ないのでわかりません。よろしくおねがいします。

  • メールサーバが qmail で、掲示板(cgi)のメール送信が動くか?

    お世話になります。 現在、メールサーバのシステムを入れ替えようと考えています。 現行のメールサーバは、sendmailを利用していますが、新しいシステムでは、qmailにする予定です。 ところが、社員用Webの掲示板(cgi)で、書き込みがあったら社員にメールで送信するような設定にしているのですが、それがsendmailを利用しているようなのです。(cgiのスクリプト中にsendmailのパスを指定する個所がある) このようなメールを送信する掲示板を利用する場合、qmailでは実現できないでしょうか? よろしくお願いいたします。

  • CGIのみでメール送信

    SENDMAIL、SMTPを使わずCGIのみでHPに設置したフォームから メールの送信って出切るのでしょうか? 皆様のお知恵をご教授ください。 宜しくお願いします。

  • CGIでのメール送信制限

    お世話になります。 CGIからのメール送信制限をかけることはできるのでしょうか。ちなみにsendmailを利用しています。 またその対策方法を教えて頂ければと思います。

  • cgiのメールフォムでメール送信できません。

    sendmailのメールフォムで、以前まで使用していたサーバーでは問題なく動作していて、 新しいサーバーに移した所、メール送信までの動作は大丈夫なのですが 送信ボタンを押しても、指定のメールアドレスにメールが届かなくなりました。 cgiファイルのパーミッションが000になっていて、FFFTP上で変更しても 反映されないです。 これが原因でしょうか? まったくの初心者なので、教えて頂けたら幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • はじめまして、レンタルサーバーでCGI(sendmail)に苦戦中です

    はじめまして、レンタルサーバーでCGI(sendmail)に苦戦中です 皆さんの知恵を教えてください 現在の状況  サーバー : 大塚商会 アルファメール         新Webに変更済み(CGI可能) 作り方として、直接CGIから実行せず、htmlからメールフォームを表示して そして、sendmail.cgiを実行する形式にしました 参考として ttp://www.site-cooler.com/kwl/cgi/5.htm を手本とさせていただきました 上記のファイルをダウンロードして、必要な箇所を変更しました   ・sendmail     パス:/usr/sbin/sendmail   ですが、なぜか…sendmail.htmは表示できて、送信ボタンを押すとエラーになります   「 internal Server Error 」 です 色々模索中なのですが、全然、解決の目処が立っておりません 模索中なのは  ●パーミッション : アルファメールでは「700」が推進とあったので700にしてみたら   sendmail.htmすら、動かず、755に変更しました   とりあえず、メールフォーム(htm)は表示されます  ●sendmail.cgiは、755・700とも動きません  ●CGIの動作環境は、     ttp://www.alpha-mail.jp/support/server_info/pg/cgi.html   です 下記のように変更しました ------------------------------------------------------------------ #!/usr/bin/perl # 初期設定 -----------------------------------------------# # # sendmailへのパス (変更済み) # $sendmail = '/usr/sbin/sendmail'; # # jcode.plへのパス # $jcode = './jcode.pl'; # # メールの送付先 # $to = 'QQQQQQQ@QQQQQQ.co.jp'; # # メールの題名 # $subject = 'CGIメール送信サンプル'; # # 確認ページより戻るでリンクされるURLを指定 # $back = 'XXX://XXX.XXXXX.XXXX/'; # # 呼出し元。チェックする時はhttpから始まるURLを指定 # $referrer = ''; --------------------------------------------------------- どうかアドバイスをお願いします

    • ベストアンサー
    • CGI
  • フォームメールのCGIスクリプトを探しています。

    ホームページで下記のようなフォームメールを使いたくて 探しているのですがなかなか見つかりません。 もしご存知の方がいらっしゃいましたら場所を教えてください。 ・フォームの入力内容をCSV形式で受け取れる ・画像の添付が出来る(出来たらサイズ制限機能付) ・送信者にも確認メール送信(CSVは管理者のみ) ・1つのCGIで複数のフォームが設置可能 ・出来たら無料で・・・^^; PERLのバージョンは5.8.0 SENDMAILは利用可能です。

  • Perl/CGIについて

    #!/usr/bin/perl use CGI; $cgi = new CGI(); $from = $cgi->param('from'); $namae = $cgi->param('namae'); $naiyou = $cgi->param('naiyou'); print "Content-type: text/html\n\n"; # 設定 $sendmail = '/usr/lib/sendmail'; $jcode = './jcode.pl'; $to = 'ha***@***.ne.jp'; #$from = ''; $subject ='名鉄と地下鉄の直通運転'; # 文字コードライブラリの読み込み require $jcode; # メール送信 &jcode'convert(*subject,'jis'); open(MAIL,"| $sendmail -t"); # ヘッダ情報出力 print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; # 本文出力 print MAIL " $namae\n\n"; print MAIL " $naiyou\n"; close(MAIL); #確認表示 print " $namae\n"; print " $naiyou\n"; print "メールを送信しました\n"; end #確認表示の所で表示が改行されない。

    • ベストアンサー
    • Perl
  • SendMailを使用しないメール送信CGI

    Webブラウザよりメールを送信するようなCGIは たいていサーバー側のSendmailの機能を利用していますが、 その機能を利用しないメールを送信するCGIがあったら、 ご紹介ください。

    • ベストアンサー
    • CGI