[英]java- How to use services for sending email?
我有一个简单的 Web 应用程序,不同的用户可以在其中登录。 重要的功能之一是用户可以访问文档并将其内容的电子邮件发送给第三方等外部人员。 以下是电子邮件的外观提供了一个想法:
这是非常不言自明的,如果我想要abc@example.com,efg@hotmail.com,...
在显示的字段框中,我可以发送给多个用户abc@example.com,efg@hotmail.com,...
所有这些,我使用 Java Mail API 使其工作点击发送按钮后,它直接发送给收件人。完全没有问题。
现在,我想通过将此电子邮件功能作为服务来修改它。这意味着当我发送电子邮件时,填写的内容和信息将存储在 MYSQL 的表中,服务(在后台运行)将选择从桌子上起来并发送。
这是我的功能:
public void sendEmail(String recipient, String subject, String content,
String host, String port, final String senderaddress,
final String password) {
try {
System.out.println("Please Wait, sending email...");
/*Setup mail server */
Properties props = new Properties();
props.put("mail.smtp.host", host); //SMTP Host
props.put("mail.smtp.port", port); //TLS Port
props.put("mail.smtp.auth", "true"); //enable authentication
props.put("mail.smtp.starttls.enable", "true"); //enable STARTTLS
//create Authenticator object to pass in Session.getInstance argument
Authenticator auth = new Authenticator() {
//override the getPasswordAuthentication method
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(senderaddress, password);
}
};
Session session = Session.getInstance(props, auth);
session.setDebug(true);
// Define message
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(senderaddress));
message.addRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipient));
// Set Subject: header field
message.setSubject(subject);
// Now set the actual message
message.setText(content);
try {
Transport.send(message);
} catch (AddressException addressException) {
addressException.printStackTrace();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
这是否可以按照我想要的方式完成,因为我不确定如何使其工作?
1 ) 从用户界面点击发送邮件按钮后,您需要调用一个方法来保存数据库中的收件人、主题、内容等数据
2)编写一个电子邮件发件人服务,它从数据库表中检索未交付/待处理的邮件,并通过 Java 邮件 API 发送它
3) 在 ScheduledExecutorService 的帮助下安排电子邮件发件人服务
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.