メール送信フォームの送信先を複数にできますか?
[上に]
[前に]
[次に]
hiro
[E-Mail]
1999/05/14(金) 00:10:44
皆さん、はじめまして。
CGIを自分で書くことができないので、無料のメール送信ファームを
利用しています。今度、その送信先を2箇所にしたいと考えていますが、
可能でしょうか?
もし可能でしたら、「wwwmail.txt」の下記の箇所に、どのように
2つのメールアドレスを書けば良いのでしょうか?
アドバイスよろしくお願いいたします。
# ★ 送信先メールアドレス
# $mailto = 'abc@xxx.yyy.zzz'; のようにあなたのメールアドレスに
# 書き換えてください。
$mailto = '';
ふじ
1999/05/14(金) 01:21:38
$mailtpo = 'abc@xxx.yyy.zzz,efg@aaa.bbb.ccc';
ふじ
1999/05/14(金) 01:22:27
あ、間違えた。
$mailtpo -> $mailto
です。
hiro
1999/05/14(金) 12:28:12
ふじさん、アドバイスありがとうございます。
このようにやってみたのですが、一つのメールアドレスにしか
送信されません。なぜなのでしょう?
一つには届くのでCGIはきちんと動いていると思いますが、
二つ目に届かない場合には、どのような箇所を確認すれば
良いのでしょうか?
アドバイスお願いいたします。
なえ
1999/05/14(金) 13:15:00
ふじさんのやり方でだめなら、おそらくその無料のメール送信CGIが
一件しか送れないような仕様になってるんじゃないでしょうか?
hiro
1999/05/14(金) 16:05:52
なえさん、ありがとうございます。
そういうこともあるのですね。
試したのはこちらの「とほほさんのメール送信フォーム
(wwwmail.cgi)」と「ネットサーフレスキュー
[裏技]さんのwebform.cgi」です。
これらのCGIで複数のメールに送信できないとすると、
他の可能な無料CGIを、どなたかご存じではないでしょうか?
ふじ
1999/05/14(金) 16:33:12
もしかして、sendmailの方に制限を掛けているかもしれません。
だとすると、CGIの方で
foreach $mailto('aaa@bbb.ccc' , 'xxx@yyy.zzz'){
...
メイルを送信する部分
...
}
などとして、2回送信するようにしないといけないかもしれませんね。
hiro
1999/05/14(金) 19:46:38
ふじさん、ありがとうございます。
教えていただいたことを試してみたいのですが、CGIが
詳しくありません。少しお教えいただけますか。
これはCGI本体の中にあるメール送信部分を上記のように囲み、
メールの送信先を2箇所、先に書き込んでしまうということ
ですね。ただCGIの中で、どこが「メイルを送信する部分」
なのかがはっきりしません。
「メイルを送信する部分」は、通常どのように書きはじめて
いるのでしょうか?
「wwwmail.cgi」もしくは「webform.cgi」を例に
教えていただくことはできますでしょうか?
また、上記のような追加書き込みをすると、以下のように
なっている箇所は、空欄にしておけばよいのでしょうか?
# ★ 送信先メールアドレス
# $mailto = 'abc@xxx.yyy.zzz'; のようにあなたのメールアドレスに
# 書き換えてください。
$mailto = '';
ふじ
1999/05/15(土) 01:57:45
wwwmail.cgiを例に取りますと、
foreach $mailto ('aaa@bbb.ccc' , 'xxx@yyy.zzz'){
#-----ここから
#
# メールヘッダを作成する
#
{
&jcode'convert(*subject, "jis");
$mailhead = "To: $mailto\n";
if ($FORM{'EMAIL'} ne "(unknown)") {
.........
中略
.........
unless (print OUT $mailbody) {
&errexit("メールの送信に失敗しました。");
}
close(OUT);
}
#-----ここまで
}
と、上記のように括ればよろしいかと。
この場合、最初の $mailto の設定は空のままでよいです。
hiro
1999/05/15(土) 08:18:58
ふじさん、本当にありがとうございます。
2カ所のメールアドレスへの送信はうまくいきました。
ただ「wwwmail.cgi」の場合、「ブラウザ画面に送信結果を書き出す」
ようになっていますが、ユーザーに書いていただいたメッセージ内容が
重複して表示されてしまいます。これを防ぐことはできないでしょうか?
細かくお聞きしてばかりで申し訳ありません。
例)
name=太郎
email=aaa@bbb.com
comments=こんにちは
name=太郎
email=aaa@bbb.com
comments=こんにちは
ふじ
1999/05/15(土) 15:06:12
#
# メールボディを作成する
#
{
$mailbody = '';
for ($i = 0; $i < $cnt; $i++) {
$mailbody .= "$FORM[$i] = $FORM{$FORM[$i]}\n";
}
上記のように、
$mailbody = '';
を追加すればいいでしょう。
(繰り返しているから、$mailbody を一回毎にクリアしないと)
hiro
1999/05/15(土) 17:26:23
ふじさん、うまく解決できました。
本当にありがとうございました。
最後に大したことではないのですが、ブラウザ画面に
送信結果が表示された時、一点疑問が出てきました。
「Cc:」として、記入された方のメールアドレスが表示
されていますが、私がテストをしたアドレスに、メールが
送られることはありませんでした。「Cc:」に関しては
以下の部分が関係ありそうですが、これは何のために
書かれているのでしょうか?
# メールヘッダを作成する
(中略)
if ($FORM{'EMAIL'} ne "(unknown)") {
$mailhead .= "Cc: $FORM{'EMAIL'}\n";
}
ふじ
1999/05/15(土) 21:59:13
sendmailは、To:とCc:に同じアドレスがあると、
まとめて1通しか送らないようです。
普通、Cc:で指定したアドレスにもメイルが送られますが、
hiroさんの環境ではsendmailで1つの宛先にしか送信できない
制限を掛けている可能性があるので、Cc:を無視しているのかも知れません。
[上に]
[前に]
[次に]