• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perl メールフォーム複数のアドレスに。)

Perlでメールフォーム複数のアドレスに配置するには?

このQ&Aのポイント
  • Perlを使用してメールフォームを作成し、複数のアドレスにメールを配置したい場合、どのようにPGを変更すれば良いでしょうか?
  • サンプルのPerlフォームメールの設定を参考に、メール送信のタイトル、背景色、文字色、戻り先のURL、CGIプログラムの設置場所を指定し、受信メールアドレス(送信先)を複数のアドレスに設定します。
  • さらに、必要な場合はjcode.plの場所とsendmailの場所も設定することができます。

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

>あとは確認のサブルーチンなんで省略しました。 実際の送信ルーチンは &sendmail; だと思われます。 >メールを複数のアドレスに配置したいのですが 配置とはなんでしょうか? 送信したいのですか? 相手に伝わらないと正しい質問は帰ってきません。 複数送信したいのでしたら、送信先を配列に入れてforeachで回してやればできますが、こんな説明では分からないのでご質問なさっているのですよね?

noname#21798
質問者

お礼

OKです。わかりました。ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • -ROM
  • ベストアンサー率35% (33/93)
回答No.2

せっかくたくさん貼り付けられたのですが、肝心の送信部分が抜けていますね。 最初の質問文の略語や No. 1 の方の回答に対するお返事を拝見するに、ここにおいて質問されながらも、それとは裏腹に独自判断されている部分が多分にあるように見受けられます。

noname#21798
質問者

お礼

回答ありがとうございます。 欠けている部分はたぶんこれです。 # メール送信のサブルーチン sub sendmail { use MIME::Base64 (); $en_subject = MIME::Base64::encode($subject); chomp($en_subject); $en_subject = "=?ISO-2022-JP?B?$en_subject?="; open(MAIL,"| $sendmail -t"); print MAIL "Errors-To: $mailto\n"; print MAIL "To: $mailto\n"; print MAIL "From: $email\n"; print MAIL "Reply-To: $mailto\n"; print MAIL "Subject: $en_subject\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n\n"; print MAIL "$msg\n\n"; close(MAIL); 質問内容自体に無理があるのは承知しています。 OKWAVEで解決できる問題ではないですね。

すると、全ての回答が全文表示されます。
  • mflow
  • ベストアンサー率63% (42/66)
回答No.1

natwoさんの現在のperlの知識では、この掲示板のやり取りだけでスクリプトを改変し、複数アドレスへのメール配信を達成するのは困難であると思われます。 そのため、Gmailを利用した別解答を示します。(参考ソースでは回答不可能です) まず、gmailのアカウントを取得します。 http://mail.google.com/ perlスクリプトの送信先に取得したgmailのE-Mailアドレスを設定します。 で、Gmalにログイン後、以下の手順を実行します。 設定(右上)→フィルタ→新しいフィルタを作成 →件名に# サンプルのタイトルのところで設定した値を入力 →次のステップ→次のアドレスに転送をチェックし送信先E-mailアドレスを入力→フィルタを作成 これを送信したいアドレス分だけ繰り返してください。 これで複数アドレスに送信できるようになるかも知れません(スクリプトの全容がわからないため断言は不可能なんです)。

noname#21798
質問者

お礼

了解でーす。そんぐらいはわかっているんですけど、 字数の制限上そこまで書けない…。 いけるとこまで以下。 $REMOTE_HOST = $ENV{'REMOTE_HOST'}; if($REMOTE_HOST==''){ $REMOTE_HOST = $ENV{'REMOTE_ADDR'}; } if($REMOTE_HOST eq $ENV{'REMOTE_ADDR'}){ $REMOTE_HOST = gethostbyaddr(pack('C4',split(/\./,$REMOTE_HOST)),2) || $REMOTE_ADDR; } # 日時を取得 @local_time = localtime(time); $local_time[5] = sprintf("%02d", $local_time[5]+1900); $local_time[4] = $local_time[4]+1; $local_time[2] = sprintf("%02d", $local_time[2]); $local_time[1] = sprintf("%02d", $local_time[1]); $local_time[0] = sprintf("%02d", $local_time[0]); $time = "$local_time[5]\/$local_time[4]\/$local_time[3] $local_time[2]\:$local_time[1]\:$local_time[0]秒"; # フォームデータをデコード if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis');

noname#21798
質問者

補足

3番目のソース あとは確認のサブルーチンなんで省略しました。 if($name eq 'proc'){ $proc = $value; } elsif($name eq 'email'){ $email = $value; } elsif($name eq 'who'){ $who = $value; } elsif($name eq 'birth'){ $birth = $value; } elsif($name eq 'subject'){ $subject = $value; } elsif($name eq 'place'){ $place = $value; } elsif($name eq 'company'){ $company = $value; } elsif($name eq 'c_place'){ $c_place = $value; } elsif($name eq 'tel'){ $tel = $value; } elsif($name eq 'body'){ $value =~ s/\r\n/\n/g; $value =~ s/\r/\n/g; $body = $value; } } } # 入力内容をチェック・編集・送信 if($proc eq 'send'){ if($email eq ''){ $error = "メールアドレスが設定されていません。"; } if($who eq ''){ $error = "$error お名前が設定されていません。"; } if($subject eq ''){ $error = "$error 題名が設定されていません。"; } if($body eq ''){ $error = "$error 本文が設定されていません。"; } if($url eq ''){ $url = "なし"; } if($error eq ''){ $msg = "========================================\n"; $msg = "$msg 差出人:$who (email:$email)\n"; $msg = "$msg 生年月日:$birth\n"; $msg = "$msg 題名:$subject\n"; $msg = "$msg 住所:$place\n"; $msg = "$msg 会社:$company\n"; $msg = "$msg 会社の所在地:$c_place\n"; $msg = "$msg TEl/FAX:$tel\n"; $msg = "$msg========================================\n\n"; $msg = "$msg- - - - - - 以下、本文 - - - - - -\n"; $msg = "$msg$body\n"; $msg = "$msg- - - - - - -ここまで- - - - - - -\n\n"; $msg = "$msg========================================\n"; $msg = "$msg 送信年月日:$time\n"; $msg = "$msg ブラウザ:$ENV{HTTP_USER_AGENT}\n"; $msg = "$msg ホスト:$REMOTE_HOST\n"; &sendmail; } } print "Content-type: text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<meta http-equiv=\"content-type\" content=\"text/html; charset=shift-jis\">\n"; print "<title>$mail_title</title>\n"; print "</head>\n"; print "<body bgcolor=\"$bgcolor\" text=\"$text\">\n"; print "<img src =\"../kensyu/a.gif\"alt=\"$n\" height=\"47\"width=\"548\"border=\"0\">\n"; print "<br><br>\n"; if($error ne ''){ &error; }

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • 筆まめ27がWindows11環境で起動しなくなった場合の問題について質問があります。具体的には起動しなくなった原因と、その解決方法を教えてください。
  • 筆まめ27を利用中の方から、動作しなくなったという報告がありました。Windows11を使用している場合、どのように対処すべきかについて詳しく説明します。
  • 筆まめ27が突然起動しなくなった問題について、原因の特定および解決方法を探っています。Windows11環境での具体的な対処法を教えてください。
回答を見る

専門家に質問してみよう