如何通过Java向两个不同的电子邮件地址发送2封电子邮件?

时间:2016-09-27 12:16:43

标签: java spring email spring-mvc

我已经创建了一个模块来联系我们。在这里,一个用户可以向管理员发送关于他的顾虑的邮件,并且管理员可以向该特定用户发送回复邮件。所以我创建了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();
        }
    }
}

有人可以告诉我如何一次向管理员用户发送邮件吗?

1 个答案:

答案 0 :(得分:1)

您的sendMail实现应完全由外部化参数驱动,例如电子邮件地址,电子邮件地址,主题,电子邮件模板路径和带占位符属性的数据。意味着在这种方法中,所提到的参数都不会被初始化,声明或操纵。

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