記事No | : 3057 |
投稿日 | : 2008/03/02(Sun) 02:37:52 |
タイトル | : postmailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/postmail.html |
過去ログを探してみたのですが、該当内容を探せなかったため
質問させてください。
postmailを利用させていただいております。
お問い合わせ頂いた順番に受信するメールのタイトルと本文内に
6桁などの自動連番
をつけたいと思っているのですが、そのようなことは可能でしょうか?
可能ならば方法をご教授いただけますと幸いです。
超初心者ですが、宜しくお願いします。
記事No | : 3058 |
投稿日 | : 2008/03/02(Sun) 09:34:20 |
タイトル | : Re: postmailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
> 過去ログを探してみたのですが、該当内容を探せなかったため
> 質問させてください。
>
> postmailを利用させていただいております。
> お問い合わせ頂いた順番に受信するメールのタイトルと本文内に
> 6桁などの自動連番
> をつけたいと思っているのですが、そのようなことは可能でしょうか?
>
> 可能ならば方法をご教授いただけますと幸いです。
> 超初心者ですが、宜しくお願いします。
2969にあります。
http://www.kent-web.com/support/bbs/?list=all&bos=2969&pg=10
記事No | : 3062 |
投稿日 | : 2008/03/03(Mon) 02:00:22 |
タイトル | : Re: postmailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/postmail.html |
レスありがとうございます。
リンク先を拝見させていただき色々と試しているのですが、
どうしても500ERRORになってしまいます。
リンク先の内容は、西暦プラス3桁の通し番号をつけるなど
色々と複雑で、初心者の私には難易度のレベルが違いすぎ、
希望してる6桁のみの通し番号をタイトル・本文につける方法
へのアレンジが全く分かりません。
誠に恐れ入りますが、postmail.cgiを全く触っていない、
ゼロの状態からご教授いただけないでしょうか?
ご面倒をおかけしますが、どうか宜しくお願いします。
記事No | : 3063 |
投稿日 | : 2008/03/03(Mon) 14:36:52 |
タイトル | : Re^2: postmailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
> レスありがとうございます。
> リンク先を拝見させていただき色々と試しているのですが、
> どうしても500ERRORになってしまいます。
>
> リンク先の内容は、西暦プラス3桁の通し番号をつけるなど
> 色々と複雑で、初心者の私には難易度のレベルが違いすぎ、
> 希望してる6桁のみの通し番号をタイトル・本文につける方法
> へのアレンジが全く分かりません。
>
> 誠に恐れ入りますが、postmail.cgiを全く触っていない、
> ゼロの状態からご教授いただけないでしょうか?
>
> ご面倒をおかけしますが、どうか宜しくお願いします。
わたくし自身もほとんど初心者ですが、
141行あたりに
# 受注番号ログファイル
$ordfile = './no.dat';
を追加。
421行あたり
# ブラウザ情報
$agent = $ENV{'HTTP_USER_AGENT'};
$agent =~ s/<//g;
$agent =~ s/>//g;
$agent =~ s/"//g;
$agent =~ s/&//g;
$agent =~ s/'//g;
#▼ここから▼
open(IN,"$ordfile");
$count = <IN>;
close(IN);
($count, $dat) = split(/:/, $count);
$count++;
while (length($count) < 6) { $count = '0' . $count; } ## 番号の前に0を表示しない場合はこの行は不要
#▲ここまで追加▲
443行あたり
# テンプレ変数変換
$tbody =~ s/\$count/$count/;## ←★追加
$tbody =~ s/\$date/$date1/;
$tbody =~ s/\$agent/$agent/;
$tbody =~ s/\$host/$host/;
&jcode::convert(\$tbody, 'jis');
490行あたり
# メールアドレスがない場合は送信先に置き換え
if ($in{'email'} eq "") { $email = $mailto; }
else { $email = $in{'email'}; }
$subject="$subject:$count"; ## ←★追加
# MIMEエンコード
535行あたり
# sendmail送信
} else {
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "$body\n";
close(MAIL);
}
#▼ここから▼
open(DAT,"+< $ordfile") || &error("Open Error: $ordfile");
eval 'flock(DAT, 2);';
seek(DAT, 0, 0);
print DAT "$count\:$date";
truncate(DAT, tell(DAT));
close(DAT);
#▲ここまで追加▲
最後に
tmplフォルダのbody.txtを開き、受付番号 : $countを一番上に
追加する。
────────────────────────────
受付番号 : $count
送信日時 : $date
ブラウザ : $agent
ホスト名 : $host
────────────────────────────
最後にno.datというファイルを作り、postmail.cgiと同じ場所に
転送する。パーミッションを606か666に変更する。
Shunさん、BALさんの書込を参考にしました。
記事No | : 3065 |
投稿日 | : 2008/03/03(Mon) 17:25:13 |
タイトル | : ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/postmail.html |
ご丁寧にありがとうございました。
postmailで見事に実現できました。
誠に申し上げにくいのですが、同様の連番機能をClipMailでも
実現してみたいと思い、色々試したりしているのですが、
どこをどのように変更して良いのかが分かりません。
大変お手数をおかけしますが、引き続きご教授頂けますと幸いです。
どうぞ宜しくお願いします。
記事No | : 3069 |
投稿日 | : 2008/03/04(Tue) 03:09:00 |
タイトル | : Re: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/postmail.html |
postmailでの方法を参考にClipMailで試しているのですが、解決できません。次のように試しました。
【init.cgi】
# 返信用メッセージテンプレート【サーバパス】
$tmpl_bres = './tmpl/body_res.txt';
# 受注番号ログファイルログファイル
$ordfile = './no.dat';
【libフォルダ内のsendmail.pl】
# ブラウザ情報
my $agent = $ENV{'HTTP_USER_AGENT'};
$agent =~ s/<//g;
$agent =~ s/>//g;
$agent =~ s/"//g;
$agent =~ s/&//g;
$agent =~ s/'//g;
#▼ここから▼
open(IN,"$ordfile");
$count = <IN>;
close(IN);
($count, $dat) = split(/:/, $count);
$count++;
while (length($count) < 6) { $count = '0' . $count; } ## 番号の前に0を表示しない場合はこの行は不要
#▲ここまで追加▲
# テンプレ変数変換
$tbody =~ s/\$count/$count/;## ←★追加
$tbody =~ s/\$date/$date1/g;
$tbody =~ s/\$agent/$agent/g;
$tbody =~ s/\$host/$host/g;
&jcode::convert(\$tbody, 'jis');
# メールアドレスがない場合は送信先に置き換え
my $email;
if ($in{'email'} eq "") {
$email = $mailto;
} else {
$email = $in{'email'};
}
# MIMEエンコード
my $subject2 = &mimeencode($subject); ## ←★追加
# sendmail送信の場合
} else {
# 本文送信
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "$body\n";
close(MAIL);
# 返信送信
if ($auto_res) {
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "$res_body\n";
close(MAIL);
}
}
#▼ここから▼
open(DAT,"+< $ordfile") || &error("Open Error: $ordfile");
eval 'flock(DAT, 2);';
seek(DAT, 0, 0);
print DAT "$count\:$date";
truncate(DAT, tell(DAT));
close(DAT);
#▲ここまで追加▲
tmplフォルダのbody.txtとbody_res.txtを開き、それぞれに
受付番号 : $countを一番上に追加しました。
────────────────────────────
受付番号 : $count
送信日時 : $date
ブラウザ : $agent
ホスト名 : $host
────────────────────────────
最後にinit.cgiと同じ階層にno.datを作成し、中身は000000としています。
clipmail.htmlの送信ボタンを押すと、
「セキュリティーで保護されていない接続へリダイレクトされようとしています。
現在のサイトへの送信中の情報は、セキュリティで保護されていないサイトへ送信される可能性があります。続行しますか?」
が表示され「はい」をクリックすると、500ERRORになってしまいます。
どこがおかしいのか自分ではさっぱり分かりません。
お手数ですが、ご教授の程宜しくお願いします。
記事No | : 3070 |
投稿日 | : 2008/03/04(Tue) 07:32:13 |
タイトル | : Re^2: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
> どこがおかしいのか自分ではさっぱり分かりません。
> お手数ですが、ご教授の程宜しくお願いします。
># MIMEエンコード
>my $subject2 = &mimeencode($subject); ## ←★追加
なぜ追加したのか?
$subject="$subject:$count"; ## ←★追加
# MIMEエンコード
で普通のOKですが。
>最後にinit.cgiと同じ階層にno.datを作成し、中身は000000としています。
別に空でOKですが。
少なくとも普通に動きますけど?
記事No | : 3071 |
投稿日 | : 2008/03/04(Tue) 07:46:31 |
タイトル | : Re^2: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
忘れ物
sendmaill.plの41行あたり
# 自動返信ありのとき
my $resbody;
if ($auto_res) {
# テンプレ
open(IN,"$tmpl_bres");
while (<IN>) {
s/\r\n/\n/;
s/\r/\n/g;
$resbody .= $_;
}
close(IN);
# 変数変換
$resbody =~ s/\$count/$count/;## ←★さらに追加
$resbody =~ s/\$date/$date1/g;
$resbody =~ s/\$agent/$agent/g;
$resbody =~ s/\$host/$host/g;
記事No | : 3072 |
投稿日 | : 2008/03/04(Tue) 09:58:59 |
タイトル | : Re^3: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/clipmail/clipmail.html |
レスありがとうございます。
もう一度ゼロからやり直してみると受付番号の表示はされました。
しかし、番号が順番にあがらず、000001のままなのと、
送信ボタンを押すと自動返信共にメールでの受信は出来ていますが、
ERROR !
Open Error:
というメッセージが送信完了ページ?に表示されてしまいます。
テスト送信でメール送っていただいても構いません。
http://diva999.kuron.jp/clipmail/clipmail.html
大変お手数ですが、引き続き宜しくお願いします。
記事No | : 3073 |
投稿日 | : 2008/03/04(Tue) 11:23:31 |
タイトル | : Re^4: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
> しかし、番号が順番にあがらず、000001のままなのと、
再度、確認する。
「000000」は書き込まないでno.datを空にしてサーバーに上書きして試してみる。書き込むなら「000000」ではなく「000000:」と「:」が抜けている。
−−−−−−−−−−−−−−−−
【init.cgi】
# 返信用メッセージテンプレート【サーバパス】
$tmpl_bres = './tmpl/body_res.txt';
# 受注番号ログファイルログファイル
$ordfile = './no.dat';
【libフォルダ内のsendmail.pl】
# ブラウザ情報
my $agent = $ENV{'HTTP_USER_AGENT'};
$agent =~ s/<//g;
$agent =~ s/>//g;
$agent =~ s/"//g;
$agent =~ s/&//g;
$agent =~ s/'//g;
#▼ここから▼
open(IN,"$ordfile");
$count = <IN>;
close(IN);
($count, $dat) = split(/:/, $count);
$count++;
while (length($count) < 6) { $count = '0' . $count; } ## 番号の前に0を表示しない場合はこの行は不要
#▲ここまで追加▲
# 本文テンプレ読み込み
my $tbody;
open(IN,"$tmpl_body");
while (<IN>) {
s/\r\n/\n/;
s/\r/\n/g;
$tbody .= $_;
}
close(IN);
# テンプレ変数変換
$tbody =~ s/\$count/$count/;## ←★追加
$tbody =~ s/\$date/$date1/g;
$tbody =~ s/\$agent/$agent/g;
$tbody =~ s/\$host/$host/g;
&jcode::convert(\$tbody, 'jis');
# 自動返信ありのとき
my $resbody;
if ($auto_res) {
# テンプレ
open(IN,"$tmpl_bres");
while (<IN>) {
s/\r\n/\n/;
s/\r/\n/g;
$resbody .= $_;
}
close(IN);
# 変数変換
$resbody =~ s/\$count/$count/;## ←★追加
$resbody =~ s/\$date/$date1/g;
$resbody =~ s/\$agent/$agent/g;
$resbody =~ s/\$host/$host/g;
# メールアドレスがない場合は送信先に置き換え
my $email;
if ($in{'email'} eq "") {
$email = $mailto;
} else {
$email = $in{'email'};
}
$subject="$subject:$count"; ## ←★追加
# MIMEエンコード
# sendmail送信の場合
} else {
# 本文送信
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "$body\n";
close(MAIL);
# 返信送信
if ($auto_res) {
open(MAIL,"| $sendmail -t -i") || &error("メール送信失敗");
print MAIL "$res_body\n";
close(MAIL);
}
}
#▼ここから▼
open(DAT,"+< $ordfile") || &error("Open Error: $ordfile");
eval 'flock(DAT, 2);';
seek(DAT, 0, 0);
print DAT "$count\:$date";
truncate(DAT, tell(DAT));
close(DAT);
#▲ここまで追加▲
tmplフォルダのbody.txtとbody_res.txtを開き、それぞれに
受付番号 : $countを一番上に追加しました。
−−−−−−−−−−−−−−−−−−−−−
記事No | : 3085 |
投稿日 | : 2008/03/05(Wed) 11:33:22 |
タイトル | : Re^5: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/clipmail/clipmail.html |
長くなり申し訳ありません。
何度かやり直しているうちに原因は分かりませんが、エラーメッセージはでなくなりました。
no.datを空白にすることで、メール本文内の受付番号のカウントもできるようになりました。
しかし、メールタイトルについて解決できておりません。
# MIMEエンコード
$subject="$subject:$count"; ## ←★追加
タイトルが何も表示されません。
# MIMEエンコード
my $subject2 = &mimeencode($subject);
タイトルは表示されるが、受付番号は表示されません。
申し訳ありませんがもう少しお付き合い頂けますと幸いです。
宜しくお願いします。
記事No | : 3086 |
投稿日 | : 2008/03/05(Wed) 14:24:12 |
タイトル | : Re^6: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
やっと意味がわかりました。(^_^;)
前回、
# MIMEエンコード
my $subject2 = &mimeencode($subject); ## ←★追加
と書いてあったから、なぜ追加するのかと言いましたが
初めから
# MIMEエンコード
my $subject2 = &mimeencode($subject);
なっています。「## ←★追加」は余計だった。
−−−−−−−−−−−−−−−−−−−−−−−−−−−
# メールアドレスがない場合は送信先に置き換え
my $email;
if ($in{'email'} eq "") {
$email = $mailto;
} else {
$email = $in{'email'};
}
$subject="$subject:$count"; ## ←★追加
# MIMEエンコード
my $subject2 = &mimeencode($subject);
if ($in{'name'}) {
$in{'name'} =~ s/\n//g;
$from = &mimeencode("\"$in{'name'}\" <$email>");
} else {
$from = $email;
}
−−−−−−−−−−−−−−−−−−−−−−−−−−
でOKなはずです。
記事No | : 3090 |
投稿日 | : 2008/03/05(Wed) 20:58:39 |
タイトル | : Re^7: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/clipmail/clipmail.html |
ありがとうございました。
うまくいきました。とても嬉しいです。(^^)
本当に申しわけありませんが、最後の質問として、自動返信の
送信者名をメールアドレスではなく自分の名前に変更したいと思い、
過去ログを検索したところ、Postmailでは探せたのですが、
clipmailでの変更方法をうまく探すことが出来ませんでした。
Postmailとは記述が違っているようですが、参考にすると
恐らく、以下を変えたら良いのかと思うのですが、どのように
あてはめて変えたら良いのかが、分かりませんでした。
# MIMEエンコード
my $subject2 = &mimeencode($subject);
if ($in{'name'}) {
$in{'name'} =~ s/\n//g;
$from = &mimeencode("\"$in{'name'}\" <$email>");
} else {
$from = $email;
}
ご面倒おかけしますがどうか宜しくお願いします。
記事No | : 3094 |
投稿日 | : 2008/03/06(Thu) 09:13:56 |
タイトル | : Re^8: ClipMailのタイトル・本文に自動連番をつけたい |
ID情報 | : x1312 |
投稿者 | : うしわか |
> 本当に申しわけありませんが、最後の質問として、自動返信の
> 送信者名をメールアドレスではなく自分の名前に変更したいと
意味が少々わかりにくいです。body_res.txtの件ですよね。
だとすれば
from:ほげほげ社 <hogehoge@moemoe.com>
という風にしたいということでよろしいでしょうか。
そうだとするなら
init.cgiの123行あたりに
#送信者名
$sname ='ほげほげ社';
# 送信元メールアドレス(ダミーでも可)
$damy = 'hogehoge@moemoe.com';
を追加。
sendmail.plの241行あたり
# 本文
if (@ext > 0) {
$body .= "--$cut\n";
$body .= "Content-type: text/plain; charset=iso-2022-jp\n";
$body .= "Content-Transfer-Encoding: 7bit\n\n";
}
$body .= "$tbody\n";
$mailto2 = &mimeencode("$sname<$damy>");## ←★追加
# 返信内容フォーマット
my $res_body;
if ($auto_res) {
$res_body .= "To: $email\n";
$res_body .= "From: $mailto2\n";## ←★修正
$res_body .= "Subject: $subject2\n";
$res_body .= "MIME-Version: 1.0\n";
$res_body .= "Content-type: text/plain; charset=iso-2022-jp\n";
$res_body .= "Content-Transfer-Encoding: 7bit\n";
$res_body .= "Date: $date2\n";
$res_body .= "X-Mailer: $ver\n\n";
$res_body .= "$resbody\n";
}
あくまで私もperlは素人同然ですので、あくまでこうすれば
使えた程度とお考えください。
記事No | : 3111 |
投稿日 | : 2008/03/06(Thu) 23:11:36 |
タイトル | : 出来ました! |
ID情報 | : diva |
投稿者 | : diva999 |
URL | : http://diva999.kuron.jp/postmail.html |
うしわか様
できました。
最初から最後まで丁寧にレスをくださり、本当にありがとうございました。
おかげさまで希望することが実現できて嬉しいです。
とても感謝しています。
記事No | : 3112 |
投稿日 | : 2008/03/06(Thu) 23:23:29 |
タイトル | : Re: 出来ました! |
ID情報 | : x1312 |
投稿者 | : うしわか |
よかったですね。(^_^)