【发布时间】:2018-03-26 15:20:12
【问题描述】:
我是 java 邮件 API 的新用户。我正在尝试发送不同的- 不同的 PDF 到不同的电子邮件 ID。这里的电子邮件 ID 和文件路径是 使用另一个返回的 ArrayList 从 excel 文件中获取 班级。但附件在接收者邮件上已损坏。一世 已经检查了堆栈溢出相关的所有问题和答案 到这个问题,但什么都行不通。请帮我。我有 给定我写的程序。请帮帮我。
package emailsending;
import java.util.ArrayList;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class Email {
String username;
String password;
String excelFileName;
String result = null;
String filename, status;
ArrayList email;
byte[] buf = {};
ArrayList list_filename;
public Email(String username, String password, String excelFileName) {
this.username = username;
this.password = password;
this.excelFileName = excelFileName;
excelReading er = new excelReading(excelFileName);
ArrayList li = er.email_file();
email = (ArrayList) li.get(0);
list_filename = (ArrayList) li.get(1);
}
public Email() {
}
public String sendToAll() {
try {
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.SocketFactory.port", "465");
props.put("mail.smtp.SocketFactory.class", "javax.net.ssl.ssLSocketFactory");
System.err.println("Properties set----");
Session session = Session.getDefaultInstance(props);
session.setDebug(false);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setSubject("Client Receipt");
//1. First body part
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("This is your receipt");
MimeMultipart multipart = new MimeMultipart();
MimeBodyPart fileBodyPart = new MimeBodyPart();
for (int i = 0; i < email.size(); i++) {
status = "Sending first mail:-" + email.get(i);
System.err.println(status);
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(((String) email.get(i)).trim()));
filename = ((String) list_filename.get(i)).trim();
DataSource source = new FileDataSource(filename);
DataHandler lDataHandler = new DataHandler(source);
fileBodyPart.setDataHandler(lDataHandler);
fileBodyPart.setFileName(filename);
multipart.addBodyPart(fileBodyPart);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport transport = session.getTransport("smtps");
transport.connect("smtp.gmail.com", username, password);
transport.sendMessage(message, message.getAllRecipients());
result = "Sucessfully sent Email";
}
} catch (Exception ex) {
result = "Unable to send Email" + ex.getMessage();
System.out.print(ex);
}
return result;
}
}
【问题讨论】:
标签: java email pdf jakarta-mail email-attachments