我有一个简单的web应用程序,不同的用户可以登录它。其中一个重要的特点是用户可以访问文档并将其内容的电子邮件发送给第三方这样的局外人。以下是电子邮件给出一个想法的样子:
这是非常不言自明的,如果我想要像字段框中的abc@example.com,efg@hotmail.com,...
一样,发送给多个用户--所有这一切--我使用Java使其工作,在按下send按钮后,它将直接发送到recipient.No问题。
现在,我想通过将这个电子邮件功能作为一个service.What来修改它--这意味着当我发送电子邮件时,填充的内容和信息将存储在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());
}
}
能不能以我想要的方式去做,因为我不知道如何使它发挥作用?
发布于 2019-04-09 05:56:26
1)按下用户界面发送邮件按钮后,您需要调用一种方法来保存数据,如收件人、主题、内容在DB中。
2)编写电子邮件发件人服务,从DB表检索non_delivered /未决邮件,并通过Java发送
(3)在ScheduledExecutorService的帮助下安排电子邮件发送服务
https://stackoverflow.com/questions/55585141
复制相似问题