Heart of Thanks


メイル自動返信の設定

Xserver

携帯電話でQRコードを読み込ませて、空メイルを送ってもらい、 そのメイルアドレスにアンケートなどのサイトアドレスを送るための自動返信システムの作成方法について 簡単に記載しました。

_ サーバーの設定

  • 適当なアカウントを作ります
    ここではtourokuというアカウントを作りました。
    ホームは/Users/tourokuとなります。
  • root権限での作業になるのでrootでログインします。
    /etc/aliasesに次の文を一行追加します。
    touroku: "|/Users/touroku/Sites/automail.pl"
    このように設定しターミナルから
    %postalias /etc/aliases と打ち込んで更新します。~
    これでメールが入ったときはautomail.plが自動起動するようになります。
  • automail.plの作成
    Perlスクリプトで作成するのですが、このautomail.plが起動した時点では <STDIN>にはメイルが入っていますので、解析してFrom:以降のメイルドレスを取得 します。

実際は下記のようになるはずです

#!/usr/bin/perl
require 'mimew.pl';
require 'jcode.pl';
my $sendmail_cmd	= '/usr/sbin/sendmail';
#PostFixはメイルデーターをSTDへ読み込んだ状態で制御を渡してくれます
while (<STDIN>){
 if ( $1 > 100000 ){ exit; }
 if ( m/^From:.*$/ ){
   $_ =~ s/From: //g;
   $_ =~ s/From: //g;
   $_ =~ s/^(.*)<(.*)>(.*)$/$2/g;
   $_ =~ s/ //g;
   $mailaddress = $_;
 }
}
$mailaddress =~ s/\n//g; #余分な改行が邪魔をするので削除しておく
#送信元のアドレスを指定、送信先には上で取得したアドレスを指定
my $from = 'hoge@hoge.jp';
my $kanri = 'honya@hoge.jp';
my $to   = $mailaddress;
my $message ="メール登録に感謝します\n下記サイトからアンケートにお答え下さい。\n http://www.hoge.jp/~ank/i/quest.html";
my $subject = "Thanks Mail";
my $kanri_message = "\<$mailaddress\>からアクセスがありました。";
my $testmsg = $message . "\n";
&send_mail($to, $from, $subject, $testmsg);
&send_mail($kanri, $from, $subject, $kanri_message);
#----------------------------------------------------------------------#
#  メール送信  #
#----------------------------------------------------------------------#
sub send_mail {
   my $sendmail_cmd	= '/usr/sbin/sendmail';
   my ($to,$from,$subject,$mess)=@_;
   my $mstr;
   $subject = &mimeencode($subject);#件名をMIME-Base64に変換する
   # sendmail送信
   open(MAIL,"| $sendmail_cmd -t") || return "*error* openerror (sendmail)";
     print MAIL "To: $to\n";
     print MAIL "From: $from\n";
     print MAIL "Subject: $subject\n";
     print MAIL "MIME-Version: 1.0\n";
     print MAIL "Content-type: text/plain; charset=iso-2022-jp\n";
     print MAIL "Content-Transfer-Encoding: 7bit\n";
     foreach $mstr ( split(/\n/, $mess) ) {
       &jcode'convert(\$mstr, 'jis','euc');
       print MAIL $mstr, "\n";
     }
     close(MAIL);
     return;
 }

このようなスクリプトで、メイル自動返信ができます。

履歴の保存については、Postfixから見たパスになるので、lockdirやデータファイルのパスは絶対パスで設定する。
エラーチェックなどは、管理者へのメールなどでエラーチェックなどをするように対処

詳しくはアカウントreg001を参照(管理者のみ) または私宛にメイル下さい。

postfixについては

このサイトが参考になります

平成21年11月20日 記載

 
Link: Xserver(4768d)
Last-modified: 2008-11-25 (火) 15:46:50 (4762d)