1

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

4

1 回答 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 回答