我正在尝试使用sendgrid向多个收件人发送测试电子邮件。我使用以下内容作为起点:https://github.com/sendgrid/sendgrid-google-java
我希望收到电子邮件的用户在收到电子邮件时也能够看到“收件人”字段中的所有其他用户。使用mail.addTo API将电子邮件发送给所有用户,但是电子邮件将单独发送给所有用户(他们无法看到他们发送的所有邮件)。
基本上我的用例是向少数用户发送电子邮件,他们应该能够“全部回复”并开始彼此沟通。如何使用appengine / sendgrid / java实现这一点?
答案 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);