こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Perl メルマガシステム

ご教示お願い致します。
現在メルマガシステムを作ろうと考えているのですが、
なかなか上手くいきません。

まず
メールを受信するプログラムは
http://chaichan.lolipop.jp/perlnote/perlnote2007-06-20.htm
この、サイトを参考にできたのですが、

このプログラムだと
Toは自分のアドレスでないと送信できませんでした。
Fromを自分のアドレスにし、Toをユーザーのアドレス(複数)
にしたいのですが、どのようにすればいいのでしょうか?

投稿日時 - 2017-06-01 15:20:19

QNo.9335979

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

プロバイダのSMTPサーバーを使おうとしているけど、
そのSMTPサーバーでは、外部アドレス宛てのメール送信の場合は、
SMTP認証が必須ということはないですか?
(いまどきのSMTPサーバーは メール中継にSMTP認証が必要なのがほとんどですが
 このperlのプログラムにはSMTP認証の仕組みは入っていないので
Authen::SASL等をググってみてください)


もし、それ以外なら
ToがそのSMTPサーバー自身で受け取れるメールアドレスでなら送れるのに
異なるサーバーに届けるメールアドレスには送れないということなら
プログラムの問題でなく、サーバー側に問題がある可能性が高いです。
たとえば、そもそも外部へメール発行できるようにSMTPサーバーが構築されていないとか、
自宅設置サーバーをSMTPサーバーとして使おうとしているけど
プロバイダがスパム対策で25番ポートをブロック(OP25B)していて、
外部へメール送信できないといった具合です。


なお、メール送信できるようになったとしても
メールマガジンで大量にメールを発行することになると
なにも対策していないと、送信側のプロバイダや受信側(携帯キャリア等)側から
ブロックされてしまってメールが送れなくなってしまうことが多いです。
(一斉同報でなく、ループでの送信でも同じ)
なので、自前のメールサーバーを用意したうえで
受信側の携帯キャリアにお金を払って受け入れてもらうようにするか
時間をかけてゆっくり送信するか。

また存在しなくなったメールアドレスに繰り返し送った場合も、ブラックリストに入りますので
宛先不正のエラーメールがもどったら、
メールマガジンのリストからそのアドレスを削除するという仕組みも必要になります。

それらの開発コストや運用コストを考えると、多少の広告が入ってもいいから、
メールマガジン発行の外部サービスを使ったほうが楽かもですね。

投稿日時 - 2017-06-05 09:07:33

ANo.2

メールマガジンですよね。
送信相手はいくつを想定しているんですか?
Toに記述できる送信先アドレスは無制限じゃないですよ?

送信先が幾つになるか不明瞭だけど安定して送信させたいのであればメーリングリストを利用した方がいいはずです。
これはメールサーバー側のサービス(機能)になります。

メール送信者が一人ひとりに個別にメールを送信してもいいのですが、迷惑メール対策としてメールプロバイダ側で短時間で大量のメールを送信すると迷惑メール発信者としてメール送信を著しく制限される可能性もあります。



一度、根本的なところから見直したほうがいいのでは?

投稿日時 - 2017-06-01 18:02:08

お礼

コメントありがとうございます。
>Toに記述できる送信先アドレスは無制限じゃないですよ?
Toを1回ずつループ処理で回す予定です。

>送信先が幾つになるか不明瞭だけど安定して送信させたいのであればメーリングリストを利用した方がいいはずです。
そういうのがあるのですか・・・調べてみます。

>迷惑メール発信者としてメール送信を著しく制限される可能性もあります。
これも、おそらく規約があるはずですのでそれに沿うつもりではあります。

>一度、根本的なところから見直したほうがいいのでは?
どう見直せばいいのか・・・

投稿日時 - 2017-06-02 10:59:23

ANo.1

>このプログラムだと
>Toは自分のアドレスでないと送信できませんでした。

プログラム自体にはそういう制限はありません。なので送信できない原因を詳しく調べる必要があります。

「送信できない」というのはSMTPサーバから拒否されるということでしょうか?その場合は、どういうエラーメッセージなのかを書いてください。

もし単に「送信先のアカウントで受信できない」だけだとしたら(送信自体は実行されたが)受信側でスパム判定でゴミ箱行きになっている可能性も考えないといけません。


なお実運用に移行した場合に、『一斉送信』というのはSMTPサーバ側でも拒否される可能性があります。お使いのSMTPサーバには時間あたり(もしくは日あたり)の送信通数に制限があったりはしませんか?
複数の宛先に送信する場合、Toアドレスを入替えながら送信を繰り返すパターンと、宛先は固定(読み捨て用アカウントやundisclosed-recipients:;)にして実際の送信先をBccにまとめて送信するパターンがあります(後者でもBccがあまり多くなり過ぎないように調整はします)。このあたりの選択でもSMTPの制限との絡みがあったりします。


個人的には今どき「Perlで書く」という選択肢はないですね。スパム判定が厳しい昨今では「メルマガ専用のサーバ」で安定運用したくなります。どうしても自分で書くなら、php+外部SMTPを使うライブラリでしょうか。

投稿日時 - 2017-06-01 17:42:34

お礼

コメントありがとうございます。

>プログラム自体にはそういう制限はありません。なので送信できない原因を詳しく調べる必要があります。
この原因が、よくわかならいです。。。

>お使いのSMTPサーバには時間あたり(もしくは日あたり)の送信通数に制限があったりはしませんか?
あるはずです。調べてそれに沿うつもりではあります。

>複数の宛先に送信する場合、Toアドレスを入替えながら送信を繰り返すパターンと、宛先は固定(読み捨て用アカウントやundisclosed-recipients:;)にして実際の送信先をBccにまとめて送信するパターンがあります
これは前者で、Toを入れ替えする方法の予定です。

>個人的には今どき「Perlで書く」という選択肢はないですね
これは、単純に参考書が手元にあったので、Perlを選択しました。

投稿日時 - 2017-06-02 11:02:04

あなたにオススメの質問