为多个用户发送邮件,每个配方只有他的电子邮件地址而不是其他人

时间:2013-09-04 11:19:53

标签: email sendgrid

我是发送网格的新bie。我已经检查了两个电子邮件“https://sendgrid.com/api/mail.send.js ...”这个网址,并在两封电子邮件中成功收到了邮件。

用户从上述网址收到的邮件都有“TO”字段中的电子邮件地址 对于前者用户测试至:test@example.com; test2@example.com。和For User test2 To:test@example.com; test2@example.com。

根据我的要求,我想为多个用户发送邮件,每个配方只有他的电子邮件地址而不是其他人。 对于前者用户测试至:test@example.com和For User test2至:test2@example.com。

发送网格是否可以实现这种情况。

谢谢

4 个答案:

答案 0 :(得分:6)

您可以使用SendGrid SMTP API's to parameter将相同的电子邮件发送给多个收件人。

要执行此操作,您需要在邮件中设置X-SMTPAPI:标头,此标头将包含与SendGrid的SMTP API通信的JSON。标题看起来如下:

X-SMTPAPI: { "to": [ "test@example.com", "test2@example.com" ] }

每位收件人都会收到一封唯一的电子邮件,只发送

请注意:您仍然需要为要发送的邮件设置To:标头,但是您可以将其设置为您自己或其中一个收件人(然后将其从JSON列表中排除)。< / p>

答案 1 :(得分:0)

作为标准SMTP服务器的发送网格将作为响应,就像您从gmail,yahoo或outlook发送电子邮件一样。

我不知道这种情况。我只将它合并到2个应用程序中,所以我确信有更好的专家。

作为替代方案,您可以使用盲文进行测试,问题是在“收件人”字段中需要一个主地址,这可能无法满足您的要求。

答案 2 :(得分:0)

在Azure Mobile Service / NodeJS上发送电子邮件

 var sendgrid = new SendGrid('KEY');
sendgrid.send({
    to: toEMail, // ["email1@mail.com", "email2@mail.com",...]
    from: fromEMail,
    subject: subject,
    text: body
}, function (success, message) {
    console.log("send mail: " + subject);
    // If the email failed to send, log it as an error so we can investigate
    if (!success) {
        console.error(message);
    }
});

答案 3 :(得分:0)

可能在Sendgrid上。您可以通过个性化在sendgrid上使用普通的密件抄送,但我们不喜欢它,因为始终需要To:。所以我的解决方案是sendgrid交易电子邮件。这将向多个用户发送1封电子邮件(使用sendgrid / php / laravel):

    $email = new \SendGrid\Mail\Mail();
    $email->setFrom("sender@mail.com", "Sender Name");
    $email->setSubject("Your subject");
    $email->addTo(
        "email.1@mail.com",
        "User One",
        [],
        0
    );
    $email->addTo(
        "email.2@mail.com",
        "User Two",
        [],
        1
    );
    $email->addTo(
        "email.3@mail.com",
        "User Three",
        [],
        2
    );
    $email->addContent("text/plain", "your body");
    $email->addContent("text/html", "<strong>your body</body>");

    $sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
    try {
        $response = $sendgrid->send($email);
        return response()->json($response, 200);
    } catch (Exception $e) {
        return response()->json($e->getMessage(), 400);
    }