#!/usr/local/bin/perl -w #--------------------------------------------------------------------- # 2007/02/28 22:47:00, info@i-love-beer-with-you.com #--------------------------------------------------------------------- use Unicode::Japanese; use Net::SMTP; use CGI qw(:standard); #-----------------------------------------------------------------------------------------# # variable #-----------------------------------------------------------------------------------------# my $smtp_server = 'xxx.xxx.xxxx.xxxx'; #SMTP SERVER my $from = 'xxxx@xxxxxx.xxxx'; #FROM MAIL ADDRESS #-----------------------------------------------------------------------------------------# # library require './jcode.pl'; require './mimew.pl'; # definition my $redirect = '../success.html'; my $err_redirect = '../mail.cgi'; # get parameters my $input_data = new CGI; my $name = &sanitizeInput( $input_data->param('name')); my $subject = &sanitizeInput( $input_data->param('subject')); my $msg = &sanitizeInput( $input_data->param('msg')); my $to = &sanitizeInput( $input_data->param('to')); # urldecode # $msg = &urldecode($msg); # utf8 -> euc $msg = &msg($name, $mailaddress, $subject, $msg, $totext); # error check if(length($name) == 0){ &error(); } if(length($subject) == 0){ &error(); } if(length($mailaddress) == 0){ &error(); } # mail address is acquired from the data base. my @mailList = &getMailAddress($to); # send. foreach $line (@mailList){ &sendmail($from, $line, $subject, $msg); } print "Location: " . $redirect . "\n"; print "\n"; exit; #-----------------------------------------------------------------------------------------# # Exception. #-----------------------------------------------------------------------------------------# sub error { print "Location: " . $err_redirect . "\n"; print "\n"; exit; } #-----------------------------------------------------------------------------------------# # Message Format. #-----------------------------------------------------------------------------------------# sub msg { @prm = @_; my $name = $prm[0]; my $subject = $prm[1]; my $msg = $prm[2]; my $mystring = "\n"; $mystring .= "テストメールを送信します。\n"; $mystring .= "※なお,本メールへの返信はできません。\n"; $mystring .= "\n"; $mystring .= "-----------------------------------------------------------------\n\n"; $mystring .= "【タイトル】:$subject\n\n"; $mystring .= "-----------------------------------------------------------------\n\n"; $mystring .= "【名  前】:$name\n\n"; $mystring .= "-----------------------------------------------------------------\n"; $mystring .= "【内 容】\n\n"; $mystring .= "$msg\n\n"; $mystring .= "-----------------------------------------------------------------\n\n"; $mystring .= "/\n"; return $mystring; } #-----------------------------------------------------------------------------------------# # smtp send. #-----------------------------------------------------------------------------------------# sub sendmail { @prm = @_; my $from = $prm[0]; my $to = $prm[1]; my $subject = $prm[2]; my $msg = $prm[3]; # $subject = "日本語:①ⅱ㈱℡髙塚彅﨑德アイウエオ ㈱㈲彅ⅱ℡゛'文字化けテストです。"; # TEST CODE $subject = Unicode::Japanese->new($subject, 'auto')->euc; # mimeencodeがeucにしか対応していない #--------------------------------------------------# $subject =~ s/"/"/g; $subject =~ s/<//g; #--------------------------------------------------# jcode::h2z_euc(\$subject); $subject = mimeencode($subject); # $msg = jcode("日本語:①ⅱ㈱℡髙塚彅﨑德アイウエオ ㈱㈲彅ⅱ℡゛'文字化けテストです。")->utf8; # TEST CODE $msg =~ s/\r\n/\n/g; # \n\r -> \n $msg = Unicode::Japanese->new($msg, 'auto')->jis; #text/plain;charsetをutf8にする場合は"utf8"を指定する $smtp = Net::SMTP->new($smtp_server, Hello=>"$smtp_server"); #--------------------------------------------------# $msg =~ s/"/"/g; $msg =~ s/<//g; #--------------------------------------------------# $smtp->mail($from); $smtp->to($to); $date = &date; $smtp->data(); $smtp->datasend("Date:$date\n"); $smtp->datasend("From:$from\n"); $smtp->datasend("To:$to\n"); # $smtp->datasend("Cc:$cc\n"); $smtp->datasend("Subject:$subject\n"); $smtp->datasend("Content-Transfer-Encoding: 7bit\n"); $smtp->datasend("Content-Type: text/plain;charset=\"ISO-2022-JP\"\n"); # $smtp->datasend("Content-Type: text/plain;charset=\"utf-8\"\n"); $smtp->datasend("\n"); $smtp->datasend("$msg\n"); $smtp->dataend(); $smtp->quit; } #-----------------------------------------------------------------------------------------# # local time. #-----------------------------------------------------------------------------------------# sub date { $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time); @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); @month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); $d = sprintf("%s, %d %s %04d %02d:%02d:%02d +0900 (JST)", $week[$wday],$mday,$month[$mon],$year+1900,$hour,$min,$sec); return $d; }