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

时间:2017-06-13 11:07:33

标签: php email sendgrid

我正在使用Sendgrid API发送批量电子邮件,它工作得非常完美。现在,只要向Sendgrid发送批量电子邮件请求,客户端就想要发送电子邮件。

这是我到目前为止所尝试的内容:

trainController.updateTr = function(req, res) {
    var numseats = JSON.stringify(req.body.reserves);
    var vagon = {
        numvag: req.body.numvag,
        date1: req.body.date1,
        date2: req.body.date2,
        seatcount: req.body.seats,
        reserves: { ** how to
            push **
        }
    };

    Train.findByIdAndUpdate(req.params.id, {
        $push: {
            "vagons": vagon
        }
    }, {
        safe: true,
        upsert: true,
        new: true
    }, function(err, train) {
        if (err) {
            res.render("../views/trains/edit", {
                train: req.body
            });
        }
        res.redirect("/trains/show/" + train._id);
    });
}

它向用户发送电子邮件,但不向发送密码的人发送电子邮件。

2 个答案:

答案 0 :(得分:0)

如果您正在设置SMTPAPI To地址,则会删除Native To / BCC / CC地址。您需要在SMTPAPI字符串中设置BCC Filter value

请注意,此BCC地址也会在SendGrid上使用Credit,因为您的邮件量实际上是两倍。

答案 1 :(得分:0)

如果您要密送发件人本身,则可以。我的解决方案是在密件抄送中同时添加用户。我在这里使用Sendgrid API版本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);
        });