KENT-WEB サポートコーナー 過去ログ [ 0211 ]


記事No: 950
投稿日: 2007/06/26(Tue) 15:46:38
タイトルpostmailで複数の送信先に違う内容を自動返信
ID情報: uranuran
投稿者: ユ
URLhttp://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
投稿者: ユ
URLhttp://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
投稿者: ユ
URLhttp://2gatos.net/siitakekiraiyanen/post/

てけてんさん、早速のお答えありがとうございます。

教えて頂いた所を削除、追加したら
思った通りに動きました!
何だか良くわからないで、色々いじくるのは良くないですね。


助かりました、ありがとうございます!


[検索ページ]