2009-10-09 12 views
5

私はphpとmysqlを使用しています。phpメール機能を使用する際に制限はありますか?

私は加入者を更新するために10k ++(10千プラス)の電子メールを送信します。これは初めて送信する予定です。私はPHPのメール機能を使用しますが、基本的にここで私が何をするかです:

while($r = mysql_fetch_assoc($exe)){ 
    ... 
    if($mail){ 
     echo "success<br>"; 
    } else { 
     echo "failed<br>"; 
    } 
} 
echo "Sent all"; 
:ループ中にデータを送信するために使用し、その後

Select name, email FROM data 

まず、データベースからデータを取得

各電子メールが正常に送信されるように、if .. elseステートメントを含めます。私が世話する必要があるものはありますか? 10K ++ユーザーに送信する際に問題はありますか?

送信する電子メールの数に制限はありますか?

+1

関連 - http://stackoverflow.com/questions/788596/whats-the-best-approach-to-sending-email-to-hundreds-of-recipients-from-a-zend-f – warren

答えて

4

電子メール番号に制限はありませんが、PHPスクリプトの期限があります。 php.iniに設定されているmax_execution_timeを参照してください。通常は20秒または30秒です。あなたがそれを知らないなら、それを見つけるためにphpinfo()を使います。

さらに、ユーザーが電子メールをあまりにも多く受け取らないようにするには、いくつかの手順を実行する必要があります。それらを送信済みとしてマークする必要があります。誤ってスクリプトを2回起動した場合は、ダブル投稿を受け取ることはありません。

その他の点では、phpのメール機能は本質的に最適化されていないことに注意してください。 phpmimemessageなどのライブラリを試すこともできます。これは、たとえば他の多くの機能の中からキャッシングを行うことを可能にします。

+0

Omg、Iそれを知りませんでした。だから、あなたは通常 "phpmimemessage"を使って10k ++のメールを送りますか?どのライブラリを使用していますか? – bbtang

+0

私はもっと複雑なことをやったことがありますが、私はこのライブラリを使って大量の郵送(ニュースレター)を行っていました。 Mimemessageはかなり古くなっています。現在、より優れた図書館があります。他の回答やGoogleを参照してください。私のスクリプトはCLIからバックグラウンドで実行されていましたが、時間の制限はありませんでした。 – Palantir

9

mail documentationからこのノートの点に注意してください:

注:それはメール()関数は、ループにおける電子メールの大量に適していないことは注目に値します。この関数は、電子メールごとにSMTPソケットを開閉しますが、効率的ではありません。
大量の電子メールを送信するには、»PEAR :: Mail、および»PEAR :: Mail_Queueパッケージを参照してください。

+0

あなたは爆発的な電子メールを送信するためにどのようなライブラリを使用しますか?洋服::メール?私はそのことを勉強するつもりです。ありがとう – bbtang

+0

使用pear :: Mail_Queue、メールではなく –

2

送信/送信に失敗したメールのキューを作成する必要があります。失敗した送信を再送信し、何か問題が発生した場合にメールを再送信しないようにすることができます。

をメールで10Kメールを送信しようとしたループを作成しないください()

はまた、ほとんどの場合、あなたのISPまたはホストのメールサーバのことになりますヒットます制限されます。

0

mailmanなどの「実際の」メーリングリストツールを設定するか、少なくともエイリアスグループ(可能な場合)を使用してください。

さらに、serverfault:https://serverfault.com/questions/67154/sending-an-email-to-about-10k-users-not-spamに関する関連の質問(PHPlistが記載されています)を参照してください。そしてここに - https://serverfault.com/questions/68357/whats-the-best-way-to-send-bulk-email

関連する問題