Java 亚马逊SES自定义标题列表取消订阅isn';行不通
我试图在我发送的电子邮件中添加“列表取消订阅”标题(通过亚马逊ses),但当我看到收到的电子邮件时,没有这样的标题。我需要它来减少垃圾邮件投诉的数量,提高交付能力和声誉Java 亚马逊SES自定义标题列表取消订阅isn';行不通,java,http-headers,amazon-ses,Java,Http Headers,Amazon Ses,我试图在我发送的电子邮件中添加“列表取消订阅”标题(通过亚马逊ses),但当我看到收到的电子邮件时,没有这样的标题。我需要它来减少垃圾邮件投诉的数量,提高交付能力和声誉 SendEmailRequest sendEmailRequest = new SendEmailRequest(); sendEmailRequest.putCustomRequestHeader(UNSUBSCRIBE_HEADER, unsuscribeURL); PS:使用其他提供商,如Mandrill或Sendgri
SendEmailRequest sendEmailRequest = new SendEmailRequest();
sendEmailRequest.putCustomRequestHeader(UNSUBSCRIBE_HEADER, unsuscribeURL);
PS:使用其他提供商,如Mandrill或Sendgrid,它可以工作,但我在amazon上确实需要它,所以。。。我找到了一个解决办法。 如果要向邮件添加自定义标题,请始终使用原始邮件,而不是简单的邮件 大概是这样的:
SendRawEmailRequest sendRawEmailRequest = new SendRawEmailRequest();
RawMessage rawMessage = null;
rawMessage = buildSimpleRawMessage(...);
sendRawEmailRequest.setRawMessage(rawMessage);
private RawMessage buildSimpleRawMessage(String subject, String message, Attachment attachment) {
RawMessage rawMessage = null;
try {
// JavaMail representation of the message
Session s = Session.getInstance(new Properties(), null);
MimeMessage mimeMessage = new MimeMessage(s);
// Subject
mimeMessage.setSubject(subject);
// Add a MIME part to the message
MimeMultipart mimeBodyPart = new MimeMultipart();
BodyPart part = new MimeBodyPart();
part.setContent(message, "text/html");
mimeBodyPart.addBodyPart(part);
// Add a attachement to the message
if(attachment!=null){
part = new MimeBodyPart();
DataSource source = null;
source = new ByteArrayDataSource(attachment.getBuf(), attachment.getMimeType());
part.setDataHandler(new DataHandler(source));
part.setFileName(attachment.getFileName());
mimeBodyPart.addBodyPart(part);
}
mimeMessage.setContent(mimeBodyPart);
mimeMessage.addHeader(UNSUBSCRIBE_HEADER, unsubscribeURL);
// Create Raw message
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
mimeMessage.writeTo(outputStream);
rawMessage = new RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));
} catch (Exception e) {
logger.error("There was a problem creating mail attachment", e);
throw Throwables.propagate(e);
}
return rawMessage;
}