- ベストアンサー
CGI通販サイト、注文完了時に確認メールを注文者に出すには?
通販サイトを作っています。まだ作れていないのですが、フリーで配布しているCGIを利用しようと考えておりますが、注文完了時に注文者にメールを送るようにする機能がないようなのです。これは簡単なのでしょうか?CGIに何らかの記述を追記すればいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どういう環境でCGIを動かしているのかわかりませんが、比較的どんな環境でも動くスクリプトを書いてみました。最初の5つの変数だけ書き換えればメールを送れます。 ただし、Net::SMTP.pm (これは libnet で入ります), MIME::Entity.pm, Jcode.pm が必要になります。 ちょっといい参考文献が見つからなかったので下記URLをあげましたが、SMTPプロトコルやそのたメールの知識が必要となります。必要なモジュールさえ揃っていればこのサンプルコードの方が簡単かと思われます。 #!/usr/local/bin/perl -w use strict; use Net::SMTP; use MIME::Entity; use Jcode; my $from_address = 'from@address'; my $to_address = 'to@address'; my $from_name = '送信者'; my $subject = '件名です'; my $body =<<BODY; 本文です、本文。 半角文字や機種依存文字に注意。 BODY my $smtp_host = $from_address; $smtp_host =~ s/^.*?\@//; my $smtp = new Net::SMTP($smtp_host, Timeout => 10) or die; $smtp->mail($from_address); $smtp->to($to_address); $smtp->data(); my $mime = MIME::Entity->build( From => Jcode->new($from_name)->mime_encode . " <$from_address>" , To => $to_address , Type => 'text/plain; charset=ISO-2022-JP' , 'Content-Transfer-Encoding' => '7bit' , Subject => Jcode->new($subject)->mime_encode() , Data => Jcode->new($body)->h2z->jis() ); $smtp->datasend($mime->as_string()); $smtp->quit();
その他の回答 (1)
- txrx
- ベストアンサー率45% (83/184)
perlやCGI・OSの事が分かっていれば簡単です。 UNIX系ならsendmailをパイプでオープンして内容を出力してやれば送信できます。 ・・・と書いても漠然としすぎて分からないでしょね。 とりあえず『CGI メール送信』で検索してみてください。 とても沢山出てきます。 フォームからCGIを呼び出しメール送信するPerlプログラムがフリーでDL出来るので参考になると思います。 その部分を注文CGIに組み込めば比較的簡単に実現できます。 インターネットメールでは、宛先等のヘッダ部分に単純な漢字コードは含めることが出来ないので、MIMEエンコードに対応したサンプルをダウンロードしてください。