首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java-如何使用服务发送电子邮件?

java-如何使用服务发送电子邮件?
EN

Stack Overflow用户
提问于 2019-04-09 04:29:56
回答 1查看 220关注 0票数 2

我有一个简单的web应用程序,不同的用户可以登录它。其中一个重要的特点是用户可以访问文档并将其内容的电子邮件发送给第三方这样的局外人。以下是电子邮件给出一个想法的样子:

这是非常不言自明的,如果我想要像字段框中的abc@example.com,efg@hotmail.com,...一样,发送给多个用户--所有这一切--我使用Java使其工作,在按下send按钮后,它将直接发送到recipient.No问题。

现在,我想通过将这个电子邮件功能作为一个service.What来修改它--这意味着当我发送电子邮件时,填充的内容和信息将存储在MYSQL中的一个表中,服务(运行在后台)将从表中获取并进行发送。

这是我的职责:

代码语言:javascript
代码运行次数:0
运行
复制
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());
    }
}

能不能以我想要的方式去做,因为我不知道如何使它发挥作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 05:56:26

1)按下用户界面发送邮件按钮后,您需要调用一种方法来保存数据,如收件人、主题、内容在DB中。

2)编写电子邮件发件人服务,从DB表检索non_delivered /未决邮件,并通过Java发送

(3)在ScheduledExecutorService的帮助下安排电子邮件发送服务

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55585141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档