工具类——简单的java实现发送纯文本或HTML邮件(使用spring+maven构建)

本次用maven创建项目

引入maven依赖

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

具体实现,该Demo用的是QQ邮箱服务器

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

@Service
public class MailService {
        // 发件人邮箱
	public static String USER_NAME="xxx@qq.com";
        // 服务器地址 这里我用了QQ邮箱的服务器
	public static String HOST="smtp.exmail.qq.com";
        // 授权码 非邮箱登录密码
	public static String AUTH_CODE="xxx";
        // 发件人邮箱
	public static String FROM="xxx@qq.com";

	/**
	 * 发送邮件
	 * @param user 发件人邮箱
	 * @param password 授权码(注意不是邮箱登录密码)
	 * @param host 服务器地址
	 * @param from 发件人
	 * @param to 接收者邮箱
	 * @param subject 邮件主题
	 * @param content 邮件内容
	 * @return success 发送成功 failure 发送失败
	 * @throws Exception
	 */
	public String sendMail( String to, String subject, String content)throws Exception {
		try {
			String user=USER_NAME;
			String password=AUTH_CODE;
			String host=HOST;
			String from=FROM;
			// 发送者认证权限
			JavaMailSenderImpl mailSender=new JavaMailSenderImpl();
            // 根据自己的情况设置发用户名
			mailSender.setUsername(user); 
            // 根据自己的情况 设置password
			mailSender.setPassword(password); 

			Properties prop = new Properties();
            // 将这个参数设为true,让服务器进行认证用户名和密码是否正确
			prop.put("mail.smtp.auth", "true"); 
			prop.put("mail.smtp.timeout", "25000");
            // 25端口已被QQ邮箱关闭,需要通过SSL或TLS传输,使用465端口
            prop.put("mail.smtp.host", host);
            prop.put("mail.smtp.socketFactory.class", SSL_FACTORY);
            prop.put("mail.smtp.socketFactory.fallback", "false");
            prop.put("mail.smtp.port", "465");
            prop.put("mail.smtp.socketFactory.port", "465");

			mailSender.setJavaMailProperties(prop);

			//设定mail server 
			mailSender.setHost(host);
			//建立邮件消息,发送邮件和html邮件的区域
			MimeMessage mailMessage = mailSender.createMimeMessage();
			MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");

			// 发送人邮箱
			messageHelper.setFrom(from);
			// 设置收件人邮箱
			messageHelper.setTo(to);

			// 主题
			messageHelper.setSubject(subject);
			// true 表示启动HTML格式的邮箱
			messageHelper.setText("<html><head></head><body>" + content
					+ "</body></html>", true);
            //发送邮件 
			mailSender.send(mailMessage); 
		} catch (Exception e) {
			e.printStackTrace();
			return "failure";
		}
		return "success";
	}


	public static void main(String[] args) throws Exception {
		List<String> l=new ArrayList<String>();
		l.add("1");
		l.add("2");
		l.add("3");
		l.add("4");
		StringBuffer sb=new StringBuffer();
		for(int i=0;i<l.size();i++){
			sb.append(l.get(i));
			sb.append("<br/>");
		}
		MailService mail=new MailService();
		mail.sendMail("xxx@qq.com", "我是主题", sb.toString());

	}

}
 

注意:每个邮箱服务器有限制发送的条数,如下可参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值