我在 php 中使用 mailgun 作為 API 服務來發(fā)送電子郵件。但是我正在構建一個模塊,我可以在其中向訂閱者發(fā)送電子郵件。我正在使用下面的代碼來實現(xiàn)相同的目的。$builder = new MessageBuilder();$builder->setFromAddress("updates@somedomain.com", array("first"=>"Some Domain"));foreach ($subscribers as $key => $value) $builder->addToRecipient($value['email']);$builder->setSubject($subject);$builder->setHtmlBody(include("email-templates/emailSubscribers.php"));if(strlen($attachment) > 20) $builder->addAttachment($attachment); try { $mgClient = Mailgun::create(MAILGUN_API_KEY); $result = $mgClient->messages()->send(MAILGUN_DOMAIN_NAME, $builder->getMessage()); if(strpos($result->getMessage(), 'Queued') !== false) return [ 'status' => true ]; else return [ 'status' => false, 'message' => $result->getMessage() ]; // For the ID: $response->getId() }catch(\Exception $e) { echo json_encode( [ 'type' => 'error', 'heading' => 'Could not broadcast!', 'message' => 'Some problem occurred while sending emails, kindly debug. '.$e ] ); }代碼工作得很好,唯一的問題是當郵件被發(fā)送時,所有的收件人都被標記了TO并且任何人都可以看到郵件TO我想讓它看起來像郵件被發(fā)送給每個訂閱者作為個人而且它不應該被郵件服務器標記為垃圾郵件。
1 回答

至尊寶的傳說
TA貢獻1789條經(jīng)驗 獲得超10個贊
嘗試作為批量消息發(fā)送
$mgClient = Mailgun::create(MAILGUN_API_KEY);
$builder= $mgClient->messages()->getBatchMessage("somedomain.com");
//regular stuff
$builder->setFromAddress("updates@somedomain.com", array("first"=>"Some Domain"));
foreach ($subscribers as $key => $value)
$builder->addToRecipient($value['email']);
$builder->setSubject($subject);
$builder->setHtmlBody(include("email-templates/emailSubscribers.php"));
if(strlen($attachment) > 20)
$builder->addAttachment($attachment);
$builder->finalize(); //equivalent of ->send
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消