| 先日も同じような質問させて頂いたのですが、私の使用しているプロバイダ「hi-ho」では、sendmail機能は使えず、代わりに「ssendmail(simple sendmail)」という機能が用意されています。
そして、I-BOARDやChild treeのメール通知機能を使用すると、メールは正常に送られるのですが、メールの件名が空白になってしまいます。 はじめは、ssendmailの仕様なのかと思いましたが、色々調べてみると、「KENT WEB」さんの「yybbs」をhi-ho向けにカスタマイズしたスクリプトでは、同じメール通知機能で件名がきちんと表示されることが分かりました(実際に設置して確認済み)。 参考URL:http://www.misskita.com/cgi/hi-ho/yybbs/
そこで、もしかしたらI-BOARDも同じようにカスタマイズすれば件名が表示させることが可能なのではと思ったのですが、残念ながら私には詳しいperlの知識がありません。
以下に、件名が表示されるyybbsのスクリプトと、表示されないI-BOARDのスクリプトのメール通知機能に関する部分を掲載しますので、もしおわかりになる方がいらっしゃいましたら、カスタマイズ方法を教えて頂けないでしょうか? よろしくお願い致します。
yybbsのスクリプト(件名表示可能) -----ここから----- #--------------# # メール送信 # #--------------# sub mail_to { # メールタイトルを定義 $MailSub = "[$title : $no] $in{'sub'}";
# 記事の改行・タグを復元 $com = $in{'comment'}; $com =~ s/<br>/\n/g; $com =~ s/</</g; $com =~ s/>/>/g; $com =~ s/"/\"/g;
# メール本文を定義 $MailBody = <<"EOM"; 投稿日時:$date ホスト名:$host ブラウザ:$ENV{'HTTP_USER_AGENT'}
投稿者名:$in{'name'} Eメール:$in{'email'} URL :$in{'url'} タイトル:$in{'sub'} 投稿記事:
$com EOM # JISコード変換 # &jcode'convert(*MailSub,'jis'); &jcode'convert(*MailSub,'euc'); &jcode'convert(*MailBody,'jis');
# メールアドレスがない場合はダミーメールに置き換え if ($in{'email'} eq "") { $email = 'nomail@xxx.xxx'; } else { $email = $in{'email'}; }
# if (!open(MAIL,"| $sendmail -t")) { &error("メール送信に失敗しました"); } if (!open(MAIL,"| $sendmail -f \"$in{'email'}\" -s \"$MailSub\" $mailto")) { &error("メール送信に失敗しました"); } # print MAIL "To: $mailto\n"; # print MAIL "From: $email\n"; # print MAIL "Subject: $MailSub\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"; # print MAIL "X-Mailer: $ver\n\n"; print MAIL "--------------------------------------------------------\n"; print MAIL "$MailBody\n"; print MAIL "--------------------------------------------------------\n"; close(MAIL); } -----ここまで-----
I-BOARDのスクリプト(件名表示不可) -----ここから----- # [メール通知] # -> 投稿内容をメールで通知します(mail_) sub mail_ { $mail_subj = "$title の投稿通知"; if($type != 0 && $type ne ""){$type="($type Res)";} if($email eq ""){$email='nomail@xxx.xxx';} if($url ne "") {$urls ="http://$url";} if($d_may eq ""){$d_may="(無題)";} $Mail_Msg=<<"_MAIL_"; $mail_subj ---------------- $d_may $type $name($date) $email $urls
$comment
返信は $iurl でお願いします -----------END-- _MAIL_ $Mail_Msg=~ s/<br>/\n/g; $Mail_Msg=~ s/\<\;/</g; $Mail_Msg=~ s/\>\;/>/g; $Mail_Msg=~ s/\"\;/\"/g; $Mail_Msg=~ s/\&\;/&/g; if($t_mail){ if($mymail){if($SeMail !~ /$mail[0]/){$SeMail="$mail[0]"."$SeMail";}} else{if(($email ne $mail[0]) && ($SeMail !~ /$mail[0]/)){$SeMail="$mail[0]"."$SeMail";}} } if($SeMail =~ /^\,|^ /){$SeMail=substr($SeMail,1);} &jcode'convert(*mail_subj,'jis'); &jcode'convert(*Mail_Msg,'jis'); if($SeMail){ if(open(MAIL,"| $s_mail $SeMail")) { print MAIL "X-Mailer: UPP MAILER\n"; print MAIL "To: $mail[0]\n"; print MAIL "From: $email\n"; print MAIL "Subject: $mail_subj\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"; print MAIL "$Mail_Msg\n"; close(MAIL); } } } #--------------------------------------------------------------------------------------------------------------------- # [URLなどを判断] # -> コメント内のリンク、文字色などを処理(auto_) sub auto_ { $_[0]="<!--c-->$_[0]"; $_[0]=~ s/>((>|>|>)[^<]*)/><font color=\"$res_f\">$1<\/font>/g; $_[0]=~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<a href=\"$2\" target=\"$TGT\">$2<\/a>/g; $_[0]=~ s/([^\w^\.^\~^\-^\/^\?^\&^\+^\=^\:^\%^\;^\#^\,^\|]+)(>>|>>|>>)([0-9\-]+)/$1<a href=\"$cgi_f?namber=$_[1]&mode=res&RES=$3&no=$no$pp\" target=\"$TGT\">$2$3<\/a>/g; $_[0]=~ s/([^\w^\.^\~^\-^\/^\?^\&^\+^\=^\:^\%^\;^\#^\,^\|]+)(No|NO|no|No.|NO.|no.)([0-9]+)/$1<a href=\"$cgi_f?namber=$3&mode=res&mode2=1&no=$no$pp\" target=\"$TGT\">$2$3<\/a>/g; } -----ここまで-----
|