我正在使用Sendgrid API发送批量电子邮件,它工作得很好。现在,每当向Sendgrid发出发送批量电子邮件的请求时,客户都希望密件抄送他的电子邮件。
这是我到目前为止尝试过的:
$sendgrid = new SendGrid($user_sendgrid, $pass_sendgrid);
$email = new SendGridEmail();
$email
->setSmtpapiTos($emails)
->setFrom(<Sender Email>)
->setSubject(' ')
->setText(' ')
->addBcc(<Bcc Email>)
->addSubstitution("[firstname]", $firstname)
->addSubstitution("[lastname]", $lastname)
->setHtml(' ');
$sendgrid->send($email);
它向用户发送电子邮件,但不向用户发送电子邮件。
如果要设置 SMTPAPI To 地址,则会丢弃本机收件人/密件抄送/抄送地址。相反,您需要在 SMTPAPI 字符串中设置 BCC 筛选器值。
请注意,此密件抄送地址也使用 SendGrid 上的信用额度,因为您实际上使邮件量翻了一番。
如果你想密件抄送发件人本身,这是可能的。我的解决方案是同时在密件抄送上添加用户。我在这里使用Sendgrid API ver 3 + Laravel:
$email = "sender@mail.com";
$subject = "Email Subject";
$body = "Body of email";
$bccUsers = array();
$bccUsers[] = "your.client.email@mail.com";
$bccUsers[] = "user.1@mail.com";
$bccUsers[] = "user.2@mail.com";
$send = Mail::send('email.test', ['body' => $body],
function($mail) use ($email, $subject, $bccUsers){
$mail->from("sender@mail.com", "Email Sender")
->to($email)
->bcc($bccUsers)
->subject($subject);
});