とほほラウンジで発言時に自動メールを送信するには
[上に]
[前に]
[次に]
タック
[E-Mail]
1999/11/07(日) 14:32:41
とほほラウンジで、発言がある毎にメールを管理者に送信したいのですが、ソースをどのように変えるといいでしょうか。
Aurai
[E-Mail]
1999/11/07(日) 23:24:04
>sub appendMessage
の中にある
> # 質問者にメールで知らせる
あたりのソースをいじってみましょう
タック
[E-Mail]
1999/11/08(月) 13:32:29
素人なのでとてつもない時間がかかりそう・・・。どなたか、実際に改造して使っているかたはいらっしゃらないでしょうか?(^_^;
みなみ
1999/11/08(月) 20:27:24
> 素人なのでとてつもない時間がかかりそう・・・。
そんなに難しくはないと思います。
wwwlng.cgiの「質問者にメールで知らせる」の部分を見ると、
"Reply-To:"があれば$mailto=メールアドレスとして
$mailtoが空でなければそこにメールを送る
…というようになっているようなので、
これを、
・自分のメールアドレスを送信先にする
・$mailtoが空でなければ送信先を追加する
・条件によらずメールを送るようにする
というようにすればいいはずです。
# sendmailの宛先を複数にする方法は
# ラウンジの検索で見つけられます。
タック
[E-Mail]
1999/11/09(火) 10:28:14
[[解決]]
みなみさんありがとうございます。「・・でなければ・・する」とかという記述もしたことがないので、今の知識では不可能です(^.^)。また、出直しできます。(一応解決・・・)
みなみ
1999/11/09(火) 16:18:33
それでは、以下の方法で試してみてください。
・「#グローバル変数」のあたりで、
「$mailme="管理者のメールアドレス"」と書いておく。
(「@」を「\@」とするのを忘れずに)
・「#質問者にメールで知らせる」を次のように書き換える。
(ここでは字下げに全角スペースを使っています。
実際は半角スペースかタブを使ってください)
==書き換え前==========
if ($mailto ne "") {
seek(IN, 0, 0);
$msg = "To: $mailto\n";
$msg .= "Subject: TwnLounge Report\n";
$msg .= "\n";
while (<IN>) {
(略。ここは書き換えなし)
}
&jcode'convert(*msg, "jis");
open(OUT, "| $g_sendmail $mailto");
print OUT $msg;
close(OUT);
}
==ここまで============
↓
==書き換え後==========
if ($mailto ne "") {
$report = $mailme.','.$mailto;
} else {
$report = $mailme;
}
seek(IN, 0, 0);
$msg = "To: $mailto\n";
$msg .= "Subject: TwnLounge Report\n";
$msg .= "\n";
while (<IN>) {
(略。ここは書き換えなし)
}
&jcode'convert(*msg, "jis");
open(OUT, "| $g_sendmail $report");
print OUT $msg;
close(OUT);
==ここまで============
一応テストしてみてうまくいきました。
# 私も「とほほのperl入門」を見ながら書いているくらいで
# 知識量は他の解答者様の足元にも及びません…。
みなみ
1999/11/09(火) 16:21:20
>「$mailme="管理者のメールアドレス"」と書いておく。
「$mailme="管理者のメールアドレス";」
です。
タック
[E-Mail]
1999/11/10(水) 07:42:24
[[解決]]
Internal Server Errorがでますが、ここまでわかれば、チェックする元気も出てきたので、いろいろやってみます。みなみさんありがとうございました。
みなみ
1999/11/10(水) 11:02:53
解決してるのにしつこくレスつけてすみません。
メールアドレスの「@」をエスケープしているか、
全角スペースを使っていないか、
括弧がきちんと対応しているか、
確認してみてください。
私が利用しているサーバでは、
http://www.coma.ais.ne.jp/~minami/test/wwwlng.txt
できちんと動いてくれたのですが。
タック
[E-Mail]
1999/11/10(水) 11:49:17
お言葉に甘えて再質問させてください。エラーは回復しましたが、管理者メールアドレスに送信されてこないです。グローバル変数の場所にはアドレスも入っており「\@」の処理もしています。
タック
[E-Mail]
1999/11/10(水) 12:12:33
(追伸) みなみさんのアドレスの分もダウンロードさせていただきテストしましたが、同様でした。
みなみ
1999/11/10(水) 12:45:29
あらら、どうしてでしょう…。
To:ヘッダが関係あるのでしょうか?
sendmailのことはよく知らないので、
どなたか詳しい方がこれをご覧になっていましたら
回答をお願いいたします。
代案として、
$mailme = "管理者のメールアドレス";
のかわりに
@report = "管理者のメールアドレス";
と書いておき、
前回書き換えた部分を
==ここから==================
if ($mailto ne "") {
push(@report,$mailto);
}
foreach $to (@report) {
seek(IN, 0, 0);
$msg = "To: $to\n";
$msg .= "Subject: TwnLounge Report\n";
$msg .= "\n";
while (<IN>) {
(略)
}
&jcode'convert(*msg, "jis");
open(OUT, "| $g_sendmail $to");
print OUT $msg;
close(OUT);
}
==ここまで==================
とするといいかもしれません。
タック
1999/11/10(水) 13:32:02
みなみさん、いろいろお手数をおかけしました。メールが届かないうんぬんはどうやら、私のところのメールのちょっと複雑な転送設定のためのようです。いろいろ試して、確かに2通届くのを確認しました。ありがとうございました。勉強になりました。
[上に]
[前に]
[次に]