CGIでのメールフォーム作成■送信の名前表示について

このQ&Aのポイント
  • CGIでメールフォームを作成しています。メール送信時の送信者の名前表示方法について教えてください。
  • 実際のメールフォームの入力項目と送信される情報を示し、その後の処理について説明しています。
  • メール送信時に表示される名前のフォーマットが正しくない場合の問題点と、解決方法について質問しています。
回答を見る
  • ベストアンサー

CGIでのメールフォーム作成■送信の名前表示について

現在、CGIでメールフォームを作成しています。 そして、送信したメールが届く際に ヘッダーのFROM<送信者>の部分を"(株)AAA会社"<aaa\@yacoo.co.jp> にしたいのですがこれのやり方が解かりません。 実際に入力するメールフォーム ------------------------------------------ 会社名(syogo)    [(株)AAA会社] メールアドレス(mail) [aaa@yacoo.co.jp] ------------------------------------------ 以下必要であろうソースになります↓ # 日本語コード require 'jcode.pl'; require 'mimew.pl'; $syogo = $q->param('syogo'); $mail = $q->param('mail'); $to = $syogo . $q->param('mail'); # &mimeencode で MIME エンコード $mime_syogo = &mimeencode($to); # メールを送る open(MAIL,"|$mailprog -t"); $mail_message = ""; $mail_message .= "To: aaa\@yacoo.co.jp\n"; $mail_message .= "From: $mime_syogo\n"; $mail_message .= "Subject: メール送ります\n"; &jcode'convert(*mail_message,'jis'); print MAIL $mail_message; close (MAIL); 悪いポイントは【$to = $syogo . $q->param('mail');】だろうなあとは思っているのですが CGIで"(株)AAA会社"<aaa\@yacoo.co.jp>という表示が解からなかったのでこういう処理をしています。 (ネットで検索してもみつからなかったもので・・・) こうするとメールアドレスやタイトルに変な所でピリオドがついてしまいます。 例:"(株)AAA会社"<aaa\@yacoo.co.jp.> もしも知っている方がいれば教えていただけると大変助かります。 よろしくお願いいたします。

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

$to = $syogo . $q->param('mail'); ↓ $to = "$syogo<$mail>"; で、どうですか。

hiyokohiyo
質問者

お礼

早速トライしたところ表示&及び返信もばっちりなりました!ありがとうございました!(もしかしたら初歩的な質問だったかもしれません…お手数をおかけいたしました)

関連するQ&A

  • 送受信が出来ないメールフォーム

    メールフォームの送信ボタンを押すと Internal Server Errorの画面になり、送受信が出来ません。 jcode.plとcgi-lib.plは書き直していません。 多分form.cgiの書き方が何か違うのだと思います。 下記がform.cgiの中身です。 #!/usr/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*formdata); $subject = "$formdata{'subject'}"; $name = "$formdata{'name'}"; $email = "$formdata{'email'}"; $email = "$formdata{'dayl'}" $12 = "$formdata{'12'}"; $13 = "$formdata{'13'}"; $to = '△@yahoo.co.jp'; $subject = 'メール'; &jcode'convert(*subject,'jis'); open(MAIL, "| /usr/sbin/sendmail -t"); print MAIL "To: $to\n"; print MAIL "From: $email\n"; print MAIL "Content-Type: text/plain;\n\n"; print MAIL "件名:\n$subject\n\nお名前:\n$name\n\nメールアドレス:\n$email\n\n生年月日:\n$day\n\n資料:\n$12\n\n担当者名:\n$13\n\nご相談内容:\n$message\n"; close(MAIL); print "Location: http://△.sakura.ne.jp/12.html\n\n"; exit; 初心者にも分かる様にどなたかご教授をお願いします。 print "Location: http://△.sakura.ne.jp/12.html\n\n"; 部分の12.htmlは送信後に表示するページです。

    • 締切済み
    • CGI
  • メールフォームからメール送信するページを作成したいのですが、

    メールフォームからメール送信するページを作成したいのですが、 最初の方の require 'perl-lib.pl'; の所で、処理が止まってしまいます。 #↓======================================= #!c:/Perl/bin/perl print "Content-type: text/html\n\n"; require "cgi-lib.pl"; require "jcode.pl"; require "perl-lib.pl"; # ←ここでとまる。  : #↑======================================= サーバは、社内のWebサーバです。 サーバの環境は、 ・OS:WindowsXP ・サーバソフト:Apache HTTP Server 2.0.54 ・ActivePerl 5.8.7 Build 813 です。 perl-lib.plの保存先フォルダを変えてもダメでした。 (もちろん、その際、requireのパスも変更) perl-lib.plは、クライアントからアスキーモードでアップロードしました。 パーミッションは777です。l perl-lib.plは、 http://www.tryhp.net/perllib.htm よりダウンロードしました。 原因が分からず行き詰っております。 どのようなことが考えられるでしょうか。 どなたかご存知の方、ご教授願います。

    • ベストアンサー
    • Perl
  • Perlからメール送信で文字化け

    Perl5.8からsendmailを使ってメール送信しています。 髙や﨑が入ると文字化けします。文字化けしないようにする方法を教えてください。 #!/usr/bin/perl require 'jcode.pl'; require 'mimew.pl'; $sendmail = '/usr/lib/sendmail'; print"Content-type: text/html\n\n test\n"; if (!(open(OUT,"| $sendmail -t -i -f xxxx\@hogehoge.co.jp"))) { ; } print OUT "To: xxxx\@hogehoge.co.jp\n"; print OUT "From: xxxx\@hogehoge.co.jp\n"; print OUT "Reply-To: xxxx\@hogehoge.co.jp\n"; $subject = "サブジェクト 髙﨑"; $subject = &mimeencode($mail_subject); print OUT "Subject: $mail_subject\n"; print OUT "Mime-version: 1.0\n"; print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n"; print OUT "Content-Transfer-Encoding: 7bit\n\n"; $honbun = "メール本文 髙﨑"; &jcode'convert(*honbun, 'jis'); print OUT "$honbun\n"; close(OUT);

    • ベストアンサー
    • Perl
  • Perl メールフォーム複数のアドレスに。

    メールを複数のアドレスに配置したいのですがPGをどう変更すれば よろしいでしょうか? 参考ソース #!/usr/bin/perl # フォームメール #jcode.plの場所を設定 require "./jcode.pl"; # sendmailの場所を設定 $sendmail = '/usr/lib/sendmail'; # サンプルのタイトル $mail_title = "メール送信サンプル"; # ページの背景色 $bgcolor = "#FFFFFF"; # ページの文字色 $text = "#000000"; # 戻り先のURL $back_url = '***@aaa.co.jp'; # CGIプログラムの設置場所 $cgi_url = "./mail.cgi"; # 受信メールアドレス(送信先) $mailto = '***@aaa.jp';

    • ベストアンサー
    • Perl
  • 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
  • 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
  • jisコードで16進数の『3c』から始まる文字

    だけが文字化けしてしまいます。今までそういった現象はまったく起きていなかったのですが、突然発生するようになりました。 文字化けの内容。 『治』が『。』『爾』が『「』 といった感じで、jisコードの3c20の+3から3c60の+2までの文字が半角カタカナに化けてしまいます。 コード内容は以下です。 #!/usr/bin/perl #use KCatch qw( execdata );__DATA__ use CGI qw(:standard); use Encode; #use strict; #use warnings; require './jcode.pl'; require './mimew.pl'; ############################################# #処理開始 $query = CGI->new; if(param('handleName')){ $handleName = $query->param('handleName'); } if(param('nameLast')){ $nameLast = $query->param('nameLast'); # &jcode::convert(*nameLast,'euc-jp'); } if(param('nameFirst')){ $nameFirst = $query->param('nameFirst'); &jcode::convert(*nameFirst,'euc-jp'); } ################################ #送信メール成型 $Mail_A= <<"EOF"; $handleName $nameLast $nameFirst EOF ########################################## #コード変換 $Subject_A = &mimeencode($Subject_A); $Subject_B = &mimeencode($Subject_B); &jcode::convert(\$Mail_A,'jis'); &jcode::convert(\$Mail_B,'jis'); #受付側用を送信 open (SENDMAIL,"| $Sendmail -t -i"); print SENDMAIL <<"EOF"; To: $ToMailadd From: $mailAddress Subject: $Subject_A MIME-Version: 1.0 Content-Type: text/plain\; charset="ISO-2022-JP\" Content-Transfer-Encoding: 7bit $Mail_A EOF close SENDMAIL; です。足りない部分等ありましたら教えてください。

    • ベストアンサー
    • Perl
  • メールフォームを2つ設置するには

    違う項目のメールフォームを2つ設置するため 下記のように作りました。 1、CGIフォルダの中にmail.cgiとjcode.plが入っている 2、CGIフォルダの中にmail2.cgiとjcode.plが入っている 1のフォームは送受信できるのですが、 2のフォームで送信すると1のフォームを呼び出してしまいます。 CGI2フォルダを作り送信するのも試しましたが、同じ結果でした。 jcode.plの記述は変えていません。 2のフォームで1のフォームが呼び出される原因について ご教授をお願い致します。

    • ベストアンサー
    • CGI
  • CGI メールフォームからBCCのアドレスにメールが送信できない(Perl)

    初心者で簡単なメールフォームを作成しております。 宛先となる支店を選択後、メールのTOにその支店のアドレスが入り、メールは受信できます。同時にBCCにも一人のアドレスを入力してメールを送信したいのですが、BCCにはメールが届きません。 以下に抜粋したソースを記述しますので、どなたかご教授願います。 --------------------- HTML 部分 ------------------------------ <form action="./cgi/●●/sendmail.cgi" name="myform" method="POST"> <table> <tr><td>あなたのメールアドレス</td> <td><input type="text" name="email" size="60" maxlength="60"></td> </tr> <tr><td>お問合せ先の支店を選択</td> <td><select name="address"> <option value="" selected>選択してください</option> <option value="aaaaa@domain.jp">A支店</option> <option value="bbbbb@domain.jp">B支店</option> <option value="ccccc@domain.jp">C支店</option> </select> </td> </tr> <tr> <td><input type="submit" name="submit" value="送 信"></td> <td><input type="reset" name="reset" value="キャンセル"></td> </tr> </table> </form> --------------------- cgi 部分 ------------------------------- require '../cgi-lib.pl'; require '../jcode.pl'; $sendmail = '/usr/sbin/sendmail'; $bcc_address = 'bccbcc@gmail.com'; $email = $in{'email'}; $address = $in{'address'}; &jcode'convert(*email,'sjis'); &jcode'convert(*address,'sjis'); $message = <<EOF; Subject: 質問 From: $email Errors-to: $email Reply-To: $email ------------------------------------------------------------- 質問内容 ------------------------------------------------------------- [お客様のメールアドレス] $email EOF open(MAIL,"|$sendmail $address"); print MAIL $message; print MAIL "BCC: $bcc_address\n"; close(MAIL); print <<EOF; Content-Type: text/html <html> <head> <title>送信しました</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> ●お客様のメールアドレス $email<br> </body> </html> EOF

  • CGI メールフォームからBCCのアドレスにメールが送信できない(Perl)

    初心者で簡単なメールフォームを作成しております。 宛先となる支店を選択後、メールのTOにその支店のアドレスが入り、メールは受信できます。同時にBCCにも一人のアドレスを入力してメールを送信したいのですが、BCCにはメールが届きません。 以下に抜粋したソースを記述しますので、どなたかご教授願います。 --------------------- HTML 部分 ------------------------------- <form action="./cgi/sendmail.cgi" name="myform" method="POST"> <table> <tr><td>あなたのメールアドレス</td> <td><input type="text" name="email" size="60" maxlength="60"></td> </tr> <tr><td>お問合せ先の支店を選択</td> <td><select name="address"> <option value="" selected>選択してください</option> <option value="aaaaa@domain.jp">A支店</option> <option value="bbbbb@domain.jp">B支店</option> <option value="ccccc@domain.jp">C支店</option> </select> </td> </tr> <tr> <td><input type="submit" name="submit" value="送 信"></td> <td><input type="reset" name="reset" value="キャンセル"></td> </tr> </table> </form> --------------------- cgi 部分 -------------------------------- require '../cgi-lib.pl'; require '../jcode.pl'; $sendmail = '/usr/sbin/sendmail'; $bcc_address = 'bccbcc@gmail.com'; $email = $in{'email'}; $address = $in{'address'}; &jcode'convert(*email,'sjis'); &jcode'convert(*address,'sjis'); $message = <<EOF; Subject: 質問 From: $email Errors-to: $email Reply-To: $email -------------------------------------------------------------- 質問内容 -------------------------------------------------------------- [お客様のメールアドレス] $email EOF open(MAIL,"|$sendmail $address"); print MAIL $message; print MAIL "BCC: $bcc_address\n"; close(MAIL); print <<EOF; Content-Type: text/html <html> <head> <title>送信しました</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> ●お客様のメールアドレス $email<br> </body> </html> EOF

    • ベストアンサー
    • Perl