Java 如何从glassfish服务器发送邮件?

Java 如何从glassfish服务器发送邮件?,java,email,glassfish,Java,Email,Glassfish,如何使用java mail API编写邮件应用程序,该应用程序在glassfish服务器上始终运行,并在数据库中搜索特定时间并在该时间发送邮件。我有一个用JSF编写的web应用程序,需要在数据库中给定的特定时间发送邮件。对于gmail,请使用以下代码 import org.apache.commons.mail.*; public class GmailEmailWorking { public static void main(String[] args) { St

如何使用java mail API编写邮件应用程序,该应用程序在glassfish服务器上始终运行,并在数据库中搜索特定时间并在该时间发送邮件。我有一个用JSF编写的web应用程序,需要在数据库中给定的特定时间发送邮件。

对于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文件列表

要从其他服务器发送,您需要在下面的行中进行更改


这与JSF无关,只是web应用程序。此外,您还可以使用发送电子邮件,并使用调度程序库配置作业,如检查以下链接:谢谢Fahim Parkar。这真的很有帮助。
email.setSmtpPort(587);
email.setHostName("smtp.gmail.com");