【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

通販サイトを作っています。まだ作れていないのですが、フリーで配布しているCGIを利用しようと考えておりますが、注文完了時に注文者にメールを送るようにする機能がないようなのです。これは簡単なのでしょうか?CGIに何らかの記述を追記すればいいのでしょうか?

A 回答 (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();

参考URL:http://www.fc-lab.com/network/program/perl/mail. …
    • good
    • 0

perlやCGI・OSの事が分かっていれば簡単です。


UNIX系ならsendmailをパイプでオープンして内容を出力してやれば送信できます。

・・・と書いても漠然としすぎて分からないでしょね。
とりあえず『CGI メール送信』で検索してみてください。
とても沢山出てきます。
フォームからCGIを呼び出しメール送信するPerlプログラムがフリーでDL出来るので参考になると思います。

その部分を注文CGIに組み込めば比較的簡単に実現できます。

インターネットメールでは、宛先等のヘッダ部分に単純な漢字コードは含めることが出来ないので、MIMEエンコードに対応したサンプルをダウンロードしてください。
    • good
    • 0

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