CGI-BBS > SO−HO > ショッピングバスケット > sendmailが使えないのでNet::SMTP仕様にしたい


カレッヂ
カレッヂ


質問者 ゆーこ  投稿日 7/13(金) 02:21:29
いまいちCGIがわかっていない者です、

プロバイダがsendmailを使わせてくれないので、Net::SMTPを
インストールしました。
テストでメールが送れることは確認したのですが、
ショッピングバスケットCGIのどこを
書き換えていいかわかりません・・・、お助けを!
回答者 呑兵衛  [削除]  投稿日 7/13(金) 13:41:16
呑兵衛といいます。

ショッピングバスケットのバージョンをお知らせください。
それから、Net::SMTPでテスト送信されたとのことですが、
どういった説明をすればよいかの参考のため、扱われた方法もお知らせください。
質問者 ゆーこ  [削除]  投稿日 7/13(金) 21:18:14
お返事書いていただきありがとうございました。

今のところ簡易ショッピングバッグの最新版を上げようとしています、
テストですがNet::SMTPを使ったCGIを自作してメール発信を確認しただけです。
しかし、ショッピングCGIのどこをどう書き換えていいかいまいちわからないのです。
回答者 呑兵衛  [削除]  投稿日 7/14(土) 01:07:43
ショッピングバスケットプロ_6.02 の cart.cgi 内「オーダー処理」の項で

if (!open(OUT,"| $sendmail -t"))
        :
close(OUT);

が2組ありますが、そこをそっくり変更します。

> Net::SMTPを使ったCGIを自作してメール発信を確認した

とのことですので、以下に Net::SMTP の基本的な使い方を記しますので
参考に改造してください。 setup.cgi 内の sendmail のパスはコメントアウトして下さい。
ヘッダー以外の変数は$mailbodyにまとめる前に処理されておくと良いでしょう。

$server = "SMTPサーバー名";
$from = "送信元アドレス"; # 直接アドレスを書く場合、@の前に\を付ける
$to = "送信先アドレス"; # 直接アドレスを書く場合、@の前に\を付ける
$subject = "メールサブジェクト"; # jis処理した上でbase64エンコードしておく
$mailbody = "メール本文"; # jis処理しておく

use Net::Smtp;

$smtp = Net::SMTP->new("$server", Timeout => 10); # SMTPサーバに接続
$smtp->mail("$from"); # 送信元アドレスをセット
$smtp->to("$to"); # 送信先のアドレス
$smtp->data(); # メール本文の開始

# ヘッダを送信
$smtp->datasend("Content-Type: text/plain; charset=iso-2022-jp\n");
$smtp->datasend("To: $to\n");
$smtp->datasend("From: $from\n");
$smtp->datasend("Subject: $subject\n");
$smtp->datasend("\n");

# 本文を送信。
$smtp->datasend("$mailbody\n");
$smtp->dataend(); # メールの送信を完了
$smtp->quit; # SMTP接続をクローズ

返信(回答)する


Web裏技