重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Perlで管理者にメール送信する機能つきの掲示板を作成しております。が、メール送信されるところまでできましたが、内部エラーが起こり処理が完結しません。

自分ではどこがおかしいのかわからないので、ヒントをひただければと思い、投稿しました。

~途中から
# 登録処理

$inq =~ s/\n//g;
$inq =~ s/\r//g;

open(LOG,">>$data_file") || &msg_disp("fe");
print LOG "$mc,$dt,$gname,$email,$bm,$sex,$place,$sch,$tel,$inq,$rh\n";
close(LOG);

# メール通知
&mail;

&msg_disp("rg");

exit;

} # close sub write_data

# メール通知処理

sub mail{

# ここからロジック
&jcode'convert(*fn,"jis");
&jcode'convert(*tn,"jis");
&jcode'convert(*sj,"jis");
&jcode'convert(*ms,"jis");
#
open(MAIL, "|$sendmail $mymail"); #本番用
##open(MAIL, ">mail.txt"); #テスト用
print MAIL mimeencode("From: $fn <$mymail>\n");
print MAIL mimeencode("To: $tn <$mymail>\n");
print MAIL mimeencode("Subject: $sj\n");
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-Type: text/plain; charset=iso-2022-jp . \n\n";
print MAIL $ms;

close(MAIL);
}#close sub mail

&mailをコメント化した結果、どうやらmailルーチンの中でエラーが起こるようです。しかし、空メールだけはちゃんと指定アドレス($mymail)へ送信されてきます。

最後、$msg_dispルーチンへはエラーが起こり行きません。

mailルーチンのどこらへんがおかしいのでしょうか?

A 回答 (1件)

上手く動作するかは不明ですが、


下記コードではどうでしょう?
mimew.plのmimeencode関数を使う必要があるのかは分からないですが・・・

open(MAIL, "|$sendmail $mymail"); #本番用
print MAIL "From: $fn <$mymail>\n";
print MAIL "To: $tn <$mymail>\n";
print MAIL "Subject: $sj\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 $ms;
close(MAIL);

それから、題名をBASE64化する必要があるやもしれません。
もっと単純にすれば、何処が悪いか分かるかと思います。
なお、上記コードが正しいとは思わないで下さい。
机上で書いただけですのでm(__)m
    • good
    • 0
この回答へのお礼

mimew.plを見て、はっと思いました。そんな関数呼んでいません。私の仕様にはない関数を使おうとしていたのです。なんて、ばかな。本当に助かりました。おかげでばっちり動くので、これからさらなる改造をしようと思います。回答ありがとうございました。

お礼日時:2005/04/20 23:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!