如何使用始终在 glassfish 服务器上运行的 java 邮件 API 编写邮件应用程序,并在数据库中搜索特定时间并在该时间发送邮件。我有用 JSF 编写的 Web 应用程序,需要在数据库中给定的特定时间发送邮件。
问问题
4761 次
1 回答
2
对于 gmail,请使用以下代码
import org.apache.commons.mail.*;
public class GmailEmailWorking {
public static void main(String[] args) {
String myEmailId = "xyz@gmail.com";
String myPassword = "password";
String senderId = "xyz@yahoo.com";
try {
MultiPartEmail email = new MultiPartEmail();
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator(myEmailId, myPassword));
email.setDebug(true);
email.setHostName("smtp.gmail.com");
email.setFrom(myEmailId);
email.setSubject("Hi");
email.setMsg("This is a test mail ... :-)\n\nPlease check attachements that I have sent.\n\nThanks,\nFahim");
email.addTo(senderId);
email.setTLS(true);
EmailAttachment attachment = new EmailAttachment();
attachment.setPath("/Users/fahadparkar/Desktop/Fahim/tables.xlsx");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Excel");
attachment.setName("tables.xlsx");
email.attach(attachment);
email.send();
System.out.println("Mail sent!");
} catch (Exception e) {
System.out.println("Exception :: " + e);
}
}
}
以下是您需要的 jar 文件列表
要从其他服务器发送,您需要在以下行进行更改
email.setSmtpPort(587);
email.setHostName("smtp.gmail.com");
于 2012-07-12T16:32:30.573 回答