1

システムの特定の変更についてユーザーに通知するために、メールを送信しています。

到達率を向上させるために、長い cc\bcc リストを含む 1 つのメールとして送信するのではなく、各メールを個別に送信したいと考えています。

私が遭遇したすべてのチュートリアルでは、プラグインと、値配列をメッセージ内のプレースホルダーにバインドする洗練された方法について説明しています。

SendGridサーバーへの単一の呼び出しを使用して、できればXSMTP-APIヘッダーを使用して、不要な複雑さを伴わずに、これを行うかなり簡単な方法を探しています。

ここ数時間、解決策を求めて Web を検索してきましたが、私に適した解決策はないように思われるので、新しいスレッドを開くことを余儀なくされています。これは一般的なトピックであることを認識しており、同様の質問に関する複数のスレッドを読みました。残念ながら、それらのどれも私にとって役に立ちませんでした。

私の実稼働サーバーは名前空間をサポートしていないため、sendgrid または swiftMailer ライブラリの古いバージョンに制限されています。

よろしくお願いします、O.

擬似コード:

$conn = $PDOStaticClass::getInstance();
$dbHelper = new DbPdoHelper($conn);

$mailList = $dbHelper->getMailinglist();

//$mailList now contains an associative array with the email addresses with of my clients, what's next?
4

1 に答える 1

2

これは、SendGrid SMTPAPI ヘッダーを使用すると非常に簡単です。メッセージを送信するときにヘッダーに一連のtoアドレスを追加するだけX-SMTPAPIで、リスト内の各人 (BCC や CC ではない) に新しい電子メールが自動的に生成されます。例えば:

"X-SMTPAPI": {
  "to": [
    "ben@example.com",
    "Joe Smith <joe@example.com>"
  ]
}

Ben と Joe の両方が、同じデータを含む別々のメールを受け取ります。それぞれが受け取るメールをカスタマイズしたい場合は、置換を使用してそれを実現できます。詳細については、ドキュメントを参照してください: http://sendgrid.com/docs/API_Reference/SMTP_API/index.html

SendGrid PHP ライブラリを使用して、このプロセスを簡素化することもできます。

$conn = $PDOStaticClass::getInstance();
$dbHelper = new DbPdoHelper($conn);
$sendgrid = new SendGrid('username', 'password');

$mail = new SendGrid\Mail();
$mail->setRecipientsInHeader(true);
$mailList = $dbHelper->getMailinglist();
foreach($mailList as $email) {    
  $mail->addTo($email);
}
// ...
$sendgrid->smtp->send($mail);
于 2013-04-01T23:34:01.513 に答える