使用Sendgrid发送给多个收件人

时间:2015-03-19 12:33:02

标签: java google-app-engine sendgrid

我正在尝试使用sendgrid向多个收件人发送测试电子邮件。我使用以下内容作为起点:https://github.com/sendgrid/sendgrid-google-java

我希望收到电子邮件的用户在收到电子邮件时也能够看到“收件人”字段中的所有其他用户。使用mail.addTo API将电子邮件发送给所有用户,但是电子邮件将单独发送给所有用户(他们无法看到他们发送的所有邮件)。

基本上我的用例是向少数用户发送电子邮件,他们应该能够“全部回复”并开始彼此沟通。如何使用appengine / sendgrid / java实现这一点?

5 个答案:

答案 0 :(得分:3)

实现中必须更改某些内容,我使用的是sendgrid-java-3.1.0.jar。

我的代码,

Mail mail = new Mail();
...
Personalization p1 = new Personalization();
p1.addTo(new Email("someone@gmail.com"));
p1.addBcc(new Email("someone.else@gmail.com"));
mail.addPersonalization(p1);

这似乎按预期工作。

答案 1 :(得分:0)

我建议您添加addCc()方法。这样,您的所有收件人都可以看到彼此的电子邮件地址。

答案 2 :(得分:0)

Uisng Sendgrid v3 API。

要实现此目的-将多个to_email地址添加到Personalization对象,然后将Personalization添加到Mail对象。

 Mail mail = new Mail();
 ....
 String[] toEmails = {"test1@gmail.com","test2@gmail.com","test3@yopmail.com"};      
 Personalization personalization = new Personalization();

 for (int i = 0, size = toEmails.length; i < size; i++) {
    personalization.addTo(new Email(toEmails[i]));             
 }
 mail.addPersonalization(personalization);

答案 3 :(得分:0)

Sendgrid允许您通过创建不同的个性化设置来一次将邮件发送给多个用户。 您只需要针对所需的每个用户集字段在个性化上创建对象。比将个性化设置添加到邮件并发送该邮件。 您可以参考以下代码:

    DynamicTemplatePersonalization personalization = null;
    Email from = new Email("from-email");

    Mail mail = new Mail();
    for (UserModel admin : admins) {
        personalization = new DynamicTemplatePersonalization();
        personalization.addTo(new Email(admin.getEmail()));
        personalization.addDynamicTemplateData("admin_first_name", admin.getFirstName());
        personalization.addDynamicTemplateData("admin_last_name", admin.getLastName());
        mail.addPersonalization(personalization);
    }
    mail.setFrom(from);

答案 4 :(得分:0)

如果您希望用户可以看到所有收件人列表,您可以为所有用户列表创建一个个性化设置:

var mail = new Mail();
var personalization = new Personalization();
personalization.addTo(new Email(email1@example.com), name1));
personalization.addTo(new Email(email2@example.com), name2));
mail.addPersonalization(personalization);

如果您希望该用户只能看到他们自己 - 您可以为每个收件人指定个性化:

var mail = new Mail();
var personalization1 = new Personalization();
personalization1.addTo(new Email(email1@example.com), name1));
var personalization2 = new Personalization();
personalization2.addTo(new Email(email2@example.com), name2));
mail.addPersonalization(personalization);