62,614
社区成员
发帖
与我相关
我的任务
分享
com.sun.mail.smtp.SMTPSendFailedException: 454 Throttling failure: Maximum sending rate exceeded.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1215)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:586)
at com.amazon.ses.SendMessageRunnable.startSendEmail(SendMessageRunnable.java:122)
at com.amazon.ses.SendMessageRunnable.run(SendMessageRunnable.java:58)
at java.lang.Thread.run(Thread.java:722)
transport = session.getTransport("smtp");
transport.connect("email-smtp.us-east-1.amazonaws.com", UserInformation.emailUser, UserInformation.emailPassword);
for (SObject contact : result.getContacts()) { //可能会有1000 条或3000条.
if (contact.getField("Email") != null) {
if (!transport.isConnected()) {
transport.connect("email-smtp.us-east-1.amazonaws.com", UserInformation.emailUser, UserInformation.emailPassword);
}
Thread thread = new Thread(new SendMessageRunnable(tasks,
transport, sender, emailTemplate,
contact, attachments, documents));
flag = true;
thread.start();
listThread.add(thread);
}
}
MimeBodyPart rarAttachment = new MimeBodyPart();
FileDataSource rarFile = new FileDataSource("C:/my-file.rar"); rarAttachment.setDataHandler(new DataHandler(rarFile)); rarAttachment.setFileName(rarFile.getName());
multiPart.addBodyPart(rarAttachment);
直接将文件指定为附件就行,理论上也就应该这样,因为所有信息都已经包含在文件中了,不知道对ASES是不是也是这样。
// Adds Attachments to the email.
private void addAttachments(Multipart mulp) throws MessagingException, IOException {
log.info("Starting the attachments add to email.");
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
MimeBodyPart mimeBodyPart = null;
for (SObject attachment : attachments) {
mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setDescription(Part.ATTACHMENT);
if(attachment.getField("Body") != null) {
if(attachment.getField("ContentType").toString().contains("text/")) {
mimeBodyPart.setContent(new String(BASE64DeCoderUtils.decode(attachment.getField("Body").toString())), attachment.getField("ContentType").toString());
} else {
mimeBodyPart.setContent(decoder.decodeBuffer(attachment.getField("Body").toString()), attachment.getField("ContentType").toString());
}
}
mimeBodyPart.setFileName(attachment.getField("Name").toString());
mulp.addBodyPart(mimeBodyPart);
}
log.info("Completed the attachments add to email.");
}