私の目標は、受信者の大きなリストを持っている場合、1つの電子メールアカウントで送信すると長い時間がかかるため、電子メールを送信する処理のスピードアップです。 |複数のメールアカウントを受信者のリストに送信するマルチスレッド?
- smtp.company.frを:次に
私は、各行が、これに等しい複数のメールアカウントを持つテキストファイルを持っています[email protected] | emailpass | 「|」すると
私は糸の量を作成したいの間で各情報を渡す(:-)エラーが発生します、それよりも大きい場合は明快で)このtxtファイルの行数に等しいですデリミタを各スレッドのパラメータとして使用します。
すべてのメール受信者は一意のMemo
(行単位)で表示され、既に送信されたメールは同じ受信者に送信する必要はありません。
私はいくつかのスレッドを作成する方法についての例がありますが、私が作成した各スレッドにこれらのパラメータを渡す方法を知らない:
type
TMyThread = class(TThread)
private
protected
procedure Execute; override;
public
constructor Create;
end;
constructor TMyThread.Create;
begin
inherited True;
FreeOnTerminate := True;
Priority := tpNormal;
end;
//=================================================================
var
I: Integer;
MyThreadList: array [0..2] of TMyThread; // creates two threads
begin
for I := 0 to High(MyThreadList) do
begin
MyThreadList[I] := TMyThread.Create(True);
MyThreadList[I].FreeOnTerminate := True;
MyThreadList[I].Priority := tpNormal;
MyThreadList[I].Resume;
end;
end;
またのみ使用して送信メールのプロセスをスピードアップするために、いくつかの良いアイデアを存在する場合1つの電子メールアカウント、歓迎されます。
私は、マシンが一度に扱うことができるスレッドを(システムスレッドプールを使用してこれを助けることができる)多くのスレッドを推奨します。より多くの性能向上をもたらすことはありません。 – Victoria
あなたのメールサーバーをブラックリストに載せる準備をしてください。それはそうする確実な方法です。このような問題を防ぐために、MailChimp/Mandrillなどの電子メールサービスの使用を真剣に考えてください。 –
@Victoria、ご意見ありがとうございますが、私はパフォーマンスを探しています。他の言葉では、良いスピードで可能な電子メールの最大量(例:10電子メール/秒)を送信します。 –