プロが教えるわが家の防犯対策術!

ご教示お願い致します

ホームページからフォーム入力で自分のアドレスに
お問い合せというプログラムはできたのですが、

ボタン1つで登録されているアドレスに一斉送信する方法がわからないです。

例えば登録のテキストがあり
~toroku.txt~
名前,アドレス
test,test@yahoo.co.jp
test123,test123@yahoo.co.jp



100件ほど(まだ増える・・・)

この、カンマ区切り2列目のアドレス全てに
「新着記事更新」
というメールを送りたいのですが、どのようにすればいいのでしょうか?

#アドレス
my $from = '';#差出人
my $mailto = '';#受取人
my $mailcc = '';

#サブジェクト
my $subject = '新着記事更新;
$subject = decode('UTF-8',$subject);
$subject = Encode::encode('MIME-Header-ISO_2022_JP', $subject);

#メールヘッダー設定
my $header = <<"MAILHEADER";
From: $from
To: $mailto
cc: $mailcc
Subject: $subject
Mime-Version: 1.0
Content-type: text/plain;charset=\"UTF-8\"
Content-Transfer-Encoding: 8bit
MAILHEADER

#本文
my $newtext = '新着です';

#SMTP接続
my $smtp = Net::SMTP->new('ドメイン');
if ( !$smtp ) {
print "メールサーバーにアクセスできません!";
exit;
}

$smtp->mail($from);
$smtp->to($mailto);
$smtp->to($mailcc);
$smtp->to($subject);
$smtp->data();
$smtp->datasend($header);
$smtp->datasend("$newtext\n\n");
$smtp->datasend();
$smtp->quit;

これだと、ホームページから自分のアドレスに受け取ることはできても
自分から送信というのができないです・・・

どうかご教示お願い致します・・

A 回答 (3件)

「Toには自分のアドレスを入れていないとメールの受信ができないみたい」ってどういうことなんだろ. 逆にいうと「『自分のアドレス』でないものを入れていないとメールの受信ができない」ということなんだろうけど


・「送信がちゃんとできている」ことはどうやって確認したのか
・自分のアドレスじゃないところに送っていたとして「受信ができない」というのはどう確認したのか
がまったくわかんない.

でも, 本当に他人に送れていないんだとしたら, 「ボタン1つで登録されているアドレスに一斉送信する」よりもそっちを解消するのが先ではないのかな. そして, それは「ホームページ」とか「フォーム」とか「Perl」とかとは直接関係ない話だと思うよ.
    • good
    • 0

その「このやり方」が「どのようなやり方」なのかさっぱりわからんのだけど. ファイルから読み込むところを含めて具体的にどのようにやったのか書くことはできないでしょうか?



それから「不自然」のところは, たとえば
・Content-type: text/plain;charset=\"UTF-8\" と宣言しているのにサブジェクトと ISO-2022-JP でエンコードするのが妥当なのか
とか
・サブジェクトを宛先に入れることにどのような意味があるんだろうか
とか, ね.
    • good
    • 0
この回答へのお礼

まだファイルから読み込む段階までいってません・・・
単純に上のソースをそのまま実行してるだけです。
とりあえずのテストで

From=自分のアドレス
To=自分のスマホなど(ユーザーのアドレスになる所)
として送信したい所

Toには自分のアドレスを入れていないとメールの受信ができないみたいです。
※ホームページからお問い合せで自分に来る仕組みしかできない?です・・・

言葉がわからないので、説明が不足していたりわかならいかもしれませんが、
やりたいことはメルマガ?システムのようなことです。


不自然というのは、そういうことですか・・・
これは文字化けで悩んだときいろいろ調べて、文字化けせず
送信できたときのままで、なにが不要でというのがいまいち理解できていない
結果ですorz

お礼日時:2017/06/01 13:49

メールアドレスが書かれたそのファイルからメールアドレスを取り出し, そのすべてに送り付ければいいです.



ところで,
$subject = decode('UTF-8',$subject);
$subject = Encode::encode('MIME-Header-ISO_2022_JP', $subject);
とか
$smtp->to($subject);
のあたりは非常に不自然な気がします.
    • good
    • 0
この回答へのお礼

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

全てに送りつけるというのは、
このプログラムで
Toに入れるということですか・・・?
このやり方では送れなかったです

また不自然というのは・・・?;;

お礼日時:2017/06/01 12:59

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