記事No | : 950 |
投稿日 | : 2007/06/26(Tue) 15:46:38 |
タイトル | : postmailで複数の送信先に違う内容を自動返信 |
ID情報 | : uranuran |
投稿者 | : ユ |
URL | : http://2gatos.net/siitakekiraiyanen/post/ |
いつも沢山のすばらしいスクリプトや
参考になるログたちで、とても勉強になっております。
今回、POST-MAIL v4.11の事で行き詰まってしまい
すいませんが、どなたかお助け下さい。
postmail.cgiをひとつだけ設置して
ページごとに違う送信先を設定して、それぞれ違う内容のテンプレートを
自動返信させるというのを試しています。
過去ログの
http://www.kent-web.com/support/old/68/0009.html
と、現行ログの504番の
http://www.kent-web.com/support/bbs/?list=all&bos=498
を参考に
<input type=hidden name="宛先" value="info" />を記述したpostmail1.htmlと
<input type=hidden name="宛先" value="order" />を記述したpostmail2.htmlと
2つのページを作り、それぞれ違うアドレスに送信されるようにしています。
ここまではなんとか成功です。
これをそれぞれ違うテンプレート(tmpl/body2.txtとtmpl/body3.txt)を
自動返信させたいのですがうまくいきません。
現在、現行ログの504番を参考に
以下を追加してます
if ($in{'宛先'} eq "info") {
$mailto = 'aaa@aaaa';
$tmp_body2 = './tmpl/body2.txt';
} elsif ($in{'宛先'} eq "order") {
$mailto = 'bbb@bbb';
$tmp_body3 = './tmpl/body3.txt';
} を追加していますが
postmail1.htmlとpostmail2.htmlのどちらからメールを送っても
tmpl/body2.txtとtmpl/body3.txt両方のテンプレートが自動返信されます。
すいませんが、どなたかアドバイスを下さるとありがたいです。
テスト用フォーム設置場所
http://2gatos.net/siitakekiraiyanen/post/
バージョン
POST-MAIL v4.11
記事No | : 951 |
投稿日 | : 2007/06/26(Tue) 17:19:49 |
タイトル | : 補足です |
ID情報 | : uranuran |
投稿者 | : ユ |
URL | : http://2gatos.net/siitakekiraiyanen/post/ |
補足です。
postmail.cgiのtxtは以下になってます。
http://2gatos.net/siitakekiraiyanen/post/postmail.txt
記事No | : 952 |
投稿日 | : 2007/06/26(Tue) 20:46:43 |
タイトル | : Re: 補足です |
ID情報 | : teketen |
投稿者 | : てけてん |
> http://2gatos.net/siitakekiraiyanen/post/postmail.txt
スクリプトを拝見しました。
無駄な記述が多いですね。
少しスクリプトをすっきりさせてみましょうか。
テンプレートの$tmp_body2と$tmp_body3は返信用で、送信フォームにより振り分けているのですよね?
でしたら、以下のように修正してください。
以下の行数は、改造されたpostmail.cgiの行数です。
577行目付近
#▼ここから▼
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "$body3\n";
close(MAIL);
#▲ここまで追加▲
546行目付近
#▼ここから▼撮影用
# 送信内容フォーマット化
$body3 = "To: $email\n";
$body3 .= "From: $from\n";
$body3 .= "Subject: $subject2\n";
$body3 .= "MIME-Version: 1.0\n";
$body3 .= "Content-type: text/plain; charset=iso-2022-jp\n";
$body3 .= "Content-Transfer-Encoding: 7bit\n";
$body3 .= "Date: $date2\n";
$body3 .= "X-Mailer: $ver\n\n";
$body3 .= "$tbody3\n";
#▲ここまで追加▲
517行目付近
$tmp_body3 = './tmpl/body3.txt';
513行目付近
$tmp_body2 = './tmpl/body2.txt';
494行目付近
$tbody3 =~ s/\$message/$mbody/; ## ←追加
455行目付近
&jcode'convert(*tbody3, 'jis'); ## ←追加
448行目付近
$tbody3 =~ s/\$date/$date1/; ## ←追加
$tbody3 =~ s/\$name/$in{'name'}/; ## ←追加
$tbody3 =~ s/\$title/$in{'title'}/; ## ←追加
431行目付近
#▼ここから▼
# 返信用テンプレ読み込み
open(IN,"$tmp_body3");
while (<IN>) {
s/\r\n/\n/;
$tbody3 .= $_;
}
close(IN);
#▲ここまで追加▲
を削除。
421行目付近
# 返信用テンプレ読み込み
open(IN,"$tmp_body2");
の前の行に
if ($in{'宛先'} eq 'info') {
$tmp_body2 = './tmpl/body2.txt';
}
elsif ($in{'宛先'} eq 'order') {
$tmp_body2 = './tmpl/body3.txt';
}
を挿入して下さい。
これで、お望みの動作になると思います。
以上の修正を行う場合は、修正前のもののバックアップを取っておいて下さい。
もしも、意図した動作にならなかった場合は、元に戻してください。
以上です。
記事No | : 953 |
投稿日 | : 2007/06/26(Tue) 21:07:08 |
タイトル | : Re^2: 補足です |
ID情報 | : uranuran |
投稿者 | : ユ |
URL | : http://2gatos.net/siitakekiraiyanen/post/ |
てけてんさん、早速のお答えありがとうございます。
教えて頂いた所を削除、追加したら
思った通りに動きました!
何だか良くわからないで、色々いじくるのは良くないですね。
助かりました、ありがとうございます!