アプリ版:「スタンプのみでお礼する」機能のリリースについて

メールを複数のアドレスに配置したいのですがPGをどう変更すれば
よろしいでしょうか?

参考ソース
#!/usr/bin/perl
# フォームメール

#jcode.plの場所を設定
require "./jcode.pl";

# sendmailの場所を設定
$sendmail = '/usr/lib/sendmail';

# サンプルのタイトル
$mail_title = "メール送信サンプル";

# ページの背景色
$bgcolor = "#FFFFFF";

# ページの文字色
$text = "#000000";

# 戻り先のURL
$back_url = '***@aaa.co.jp';

# CGIプログラムの設置場所
$cgi_url = "./mail.cgi";

# 受信メールアドレス(送信先)
$mailto = '***@aaa.jp';

A 回答 (3件)

>あとは確認のサブルーチンなんで省略しました。


実際の送信ルーチンは
&sendmail;
だと思われます。


>メールを複数のアドレスに配置したいのですが
配置とはなんでしょうか?
送信したいのですか?


相手に伝わらないと正しい質問は帰ってきません。

複数送信したいのでしたら、送信先を配列に入れてforeachで回してやればできますが、こんな説明では分からないのでご質問なさっているのですよね?
    • good
    • 0
この回答へのお礼

OKです。わかりました。ありがとうございます。

お礼日時:2006/11/28 17:27

せっかくたくさん貼り付けられたのですが、肝心の送信部分が抜けていますね。


最初の質問文の略語や No. 1 の方の回答に対するお返事を拝見するに、ここにおいて質問されながらも、それとは裏腹に独自判断されている部分が多分にあるように見受けられます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

欠けている部分はたぶんこれです。

# メール送信のサブルーチン
sub sendmail {

use MIME::Base64 ();
$en_subject = MIME::Base64::encode($subject);
chomp($en_subject);
$en_subject = "=?ISO-2022-JP?B?$en_subject?=";

open(MAIL,"| $sendmail -t");

print MAIL "Errors-To: $mailto\n";
print MAIL "To: $mailto\n";
print MAIL "From: $email\n";
print MAIL "Reply-To: $mailto\n";
print MAIL "Subject: $en_subject\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n\n";

print MAIL "$msg\n\n";

close(MAIL);
質問内容自体に無理があるのは承知しています。
OKWAVEで解決できる問題ではないですね。

お礼日時:2006/11/28 17:37

natwoさんの現在のperlの知識では、この掲示板のやり取りだけでスクリプトを改変し、複数アドレスへのメール配信を達成するのは困難であると思われます。


そのため、Gmailを利用した別解答を示します。(参考ソースでは回答不可能です)

まず、gmailのアカウントを取得します。
http://mail.google.com/

perlスクリプトの送信先に取得したgmailのE-Mailアドレスを設定します。

で、Gmalにログイン後、以下の手順を実行します。

設定(右上)→フィルタ→新しいフィルタを作成
→件名に# サンプルのタイトルのところで設定した値を入力
→次のステップ→次のアドレスに転送をチェックし送信先E-mailアドレスを入力→フィルタを作成

これを送信したいアドレス分だけ繰り返してください。
これで複数アドレスに送信できるようになるかも知れません(スクリプトの全容がわからないため断言は不可能なんです)。

この回答への補足

3番目のソース
あとは確認のサブルーチンなんで省略しました。

if($name eq 'proc'){
$proc = $value;
}
elsif($name eq 'email'){
$email = $value;
}
elsif($name eq 'who'){
$who = $value;
}
elsif($name eq 'birth'){
$birth = $value;
}
elsif($name eq 'subject'){
$subject = $value;
}
elsif($name eq 'place'){
$place = $value;
}
elsif($name eq 'company'){
$company = $value;
}
elsif($name eq 'c_place'){
$c_place = $value;
}

elsif($name eq 'tel'){
$tel = $value;
}
elsif($name eq 'body'){
$value =~ s/\r\n/\n/g;
$value =~ s/\r/\n/g;
$body = $value;
}
}
}

# 入力内容をチェック・編集・送信
if($proc eq 'send'){
if($email eq ''){
$error = "メールアドレスが設定されていません。";
}
if($who eq ''){
$error = "$error お名前が設定されていません。";
}
if($subject eq ''){
$error = "$error 題名が設定されていません。";
}
if($body eq ''){
$error = "$error 本文が設定されていません。";
}

if($url eq ''){
$url = "なし";
}

if($error eq ''){

$msg = "========================================\n";
$msg = "$msg 差出人:$who (email:$email)\n";
$msg = "$msg 生年月日:$birth\n";
$msg = "$msg 題名:$subject\n";
$msg = "$msg 住所:$place\n";
$msg = "$msg 会社:$company\n";
$msg = "$msg 会社の所在地:$c_place\n";
$msg = "$msg TEl/FAX:$tel\n";
$msg = "$msg========================================\n\n";
$msg = "$msg- - - - - - 以下、本文 - - - - - -\n";

$msg = "$msg$body\n";

$msg = "$msg- - - - - - -ここまで- - - - - - -\n\n";
$msg = "$msg========================================\n";
$msg = "$msg 送信年月日:$time\n";
$msg = "$msg ブラウザ:$ENV{HTTP_USER_AGENT}\n";
$msg = "$msg ホスト:$REMOTE_HOST\n";

&sendmail;
}
}

print "Content-type: text/html\n";
print "\n";

print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"content-type\" content=\"text/html; charset=shift-jis\">\n";
print "<title>$mail_title</title>\n";
print "</head>\n";
print "<body bgcolor=\"$bgcolor\" text=\"$text\">\n";
print "<img src =\"../kensyu/a.gif\"alt=\"$n\" height=\"47\"width=\"548\"border=\"0\">\n";



print "<br><br>\n";

if($error ne ''){
&error;
}

補足日時:2006/11/28 04:27
    • good
    • 0
この回答へのお礼

了解でーす。そんぐらいはわかっているんですけど、
字数の制限上そこまで書けない…。
いけるとこまで以下。
$REMOTE_HOST = $ENV{'REMOTE_HOST'};
if($REMOTE_HOST==''){
$REMOTE_HOST = $ENV{'REMOTE_ADDR'};
}
if($REMOTE_HOST eq $ENV{'REMOTE_ADDR'}){
$REMOTE_HOST = gethostbyaddr(pack('C4',split(/\./,$REMOTE_HOST)),2) || $REMOTE_ADDR;
}

# 日時を取得
@local_time = localtime(time);
$local_time[5] = sprintf("%02d", $local_time[5]+1900);
$local_time[4] = $local_time[4]+1;
$local_time[2] = sprintf("%02d", $local_time[2]);
$local_time[1] = sprintf("%02d", $local_time[1]);
$local_time[0] = sprintf("%02d", $local_time[0]);
$time = "$local_time[5]\/$local_time[4]\/$local_time[3] $local_time[2]\:$local_time[1]\:$local_time[0]秒";

# フォームデータをデコード
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value,'sjis');

お礼日時:2006/11/28 04:23

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