【问题标题】:How do you send 2 emails to two different email addresses in Java?如何在 Java 中向两个不同的电子邮件地址发送 2 封电子邮件?
【发布时间】:2017-02-05 01:44:07
【问题描述】:

我创建了一个联系我们的模块。在这里,一个用户可以向管理员发送一封关于他关注的邮件,管理员可以向该特定用户发送回复邮件。所以我创建了 2 个不同的邮件模板,但我不知道如何同时发送。

现在我已经完成向用户发送回复邮件,但我还没有完成向管理员用户发送邮件。

我向用户发送回复邮件的代码:

package com.spring.test.service;

import java.io.IOException;
import java.util.Properties;

import javax.mail.internet.InternetAddress;

import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.web.client.RestTemplate;

public class MailMail {

    private MailSender mailSender;

    @Autowired
    @Qualifier(value = "mailSender")
    public void setMailSender(MailSender mailSender) {  
        this.mailSender = mailSender;
    }  

    public void sendMail(String to,  String subject, String msg) {  
        //creating message 

        System.out.println("mailsender == " + this.mailSender);

        try {
            String from = "emailFromAddress";

            JavaMailSenderImpl sender = new JavaMailSenderImpl();
            javax.mail.internet.MimeMessage mimeMessage = sender.createMimeMessage();
            org.springframework.mail.javamail.MimeMessageHelper helper = new org.springframework.mail.javamail.MimeMessageHelper(mimeMessage, false, "utf-8");
            mimeMessage.setContent(msg, "text/html");
            helper.setSubject(subject);
            helper.setFrom(from);
            helper.setTo(to);

            sender.setHost("smtp.gmail.com");
            sender.setUsername("emailServerUserName");
            sender.setPassword("emailServerPassword");
            sender.setPort(587);

            Properties props = new Properties();
            props.put("mail.smtp.auth",true);
            props.put("mail.smtp.starttls.enable","true");

            sender.setJavaMailProperties(props);
            sender.send(mimeMessage);
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}

谁能告诉我如何同时向管理员用户发送邮件?

【问题讨论】:

  • 您是否打算使您的电子邮件处理异步并希望同时触发这两个电子邮件处理?
  • 不,不是异步的,需要两个不同的模板同时触发两个电子邮件处理。

标签: java spring email spring-mvc


【解决方案1】:

您的 sendMail 实现应该完全由外部参数驱动,例如电子邮件地址、电子邮件地址、主题、电子邮件模板路径和具有占位符属性的数据。表示在此方法中没有初始化、声明或操作任何提到的参数。

你的 sendMail 可能会变成一个完整的无状态服务,你可以调用它来发送具有不同参数的各种电子邮件

【讨论】:

  • 是的,我的 sendMail 实现应该完全由外部参数驱动,但我怎样才能向用户发送回复邮件,同时向管理员用户发送另一个消息模板呢?这里两次调用这个方法。
  • 我假设你提到的 2 个不同的事件在你的代码中会有不同的入口点
  • 是的,那里有两个不同的事件,所以这里的 sendMail 方法被两个电子邮件模板调用了两次,但是这个方法如何调用一次呢?
猜你喜欢
  • 1970-01-01
  • 2018-01-08
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
相关资源
最近更新 更多