如何在发送网格中发送批量电子邮件时添加密件抄送



我正在使用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);
        });

最新更新