java 发邮件-java mail

一、前言

在日常系统开发工作中,我们有时会遇到发送邮件的需求,使用java来实现发送邮件功能轻而易举。

借助spring的JavaMailSenderImpl,以及mail jar包,很容易实现发送邮件功能。

二、依赖的jar包

相关jar包:添加pom.xml依赖

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.7.RELEASE</version>

</dependency>

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>

</dependency>

或者 直接下载jar包

三、设置或查看发送方邮箱的服务设置

例如,题主的126邮箱,host 是 smtp.126.com,端口号是 25



四、核心代码

@RequestMapping(value = "/sendMail", method = RequestMethod.POST)
public String sendMail(HttpServletRequest request, HttpServletResponse response, MailVo mailVo) {
	//MailVo 包含 接收方的邮箱地址、邮件标题、邮件内容
	if (null == mailVo) {
		request.setAttribute("errorMsg", "信息必须填写!");
		return "htgl.mail.index";
	}
	if (StringUtils.isBlank(mailVo.getToMail()) ) {
		request.setAttribute("errorMsg", "邮件地址必须填写!");
		request.setAttribute("mailVo", mailVo);
		return "htgl.mail.index";
	}
	if (StringUtils.isBlank(mailVo.getTitle())) {
		request.setAttribute("errorMsg", "邮件标题必须填写!");
		request.setAttribute("mailVo", mailVo);
		return "htgl.mail.index";
	}
	if (StringUtils.isBlank(mailVo.getContent())) {
		request.setAttribute("errorMsg", "邮件内容必须填写!");
		request.setAttribute("mailVo", mailVo);
		return "htgl.mail.index";
	}
	JavaMailSenderImpl sender = new JavaMailSenderImpl();
	sender.setHost("smtp.126.com");
	sender.setUsername("your mail");//发送方的邮箱,例如[email protected]
	sender.setPassword("your mail password");//发送方邮箱的密码
	sender.setPort(25);

	Properties properties = new Properties();
	properties.put("mail.smtp.auth", "smtp");
	properties.put("mail.smtp.socketFactory.fallback", "false");
	properties.put("mail.smtp.timeout", "25000");
	sender.setJavaMailProperties(properties);
		
	MimeMessage mimeMessage = sender.createMimeMessage();
		
	//可以对邮件内容加自定义样式,我这里没有加
	String content_start = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf8\"/></head><body>";
        String content_end = "</body></html>";
        StringBuilder str = new StringBuilder();
        str.append(content_start);
        str.append(mailVo.getContent());
        str.append(content_end);
        String content = str.toString();
        
        //mimeMessage.setContent(text, "text/html;charset=GB18030");
        MimeMessageHelper helper;
        try {
            helper = new MimeMessageHelper(mimeMessage, true,"GBK");
            helper.setFrom(sender.getUsername());
            helper.setTo(mailVo.getToMail());
            helper.setSubject(mailVo.getTitle());
            helper.setText(content, true);
            sender.send(mimeMessage);
        } catch (MessagingException e1) {
            logger.info("发送邮件时,发送失败");
            logger.info(e1.getMessage());
            e1.printStackTrace();
	    request.setAttribute("result", "发送失败!");
	    return "htgl.mail.sendMail";
        }
        request.setAttribute("result", "发送成功!");
	return "htgl.mail.sendMail";
}
public class MailVo {
	private String toMail;
	private String title;
	private String content;
	public String getToMail() {
		return toMail;
	}
	public void setToMail(String toMail) {
		this.toMail = toMail;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	
}


猜你喜欢

转载自blog.csdn.net/u013309822/article/details/79862808
今日推荐