简单的java实现发送邮件(使用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="[email protected]";
        // 服务器地址 这里我用了QQ邮箱的服务器
	public static String HOST="smtp.exmail.qq.com";
        // 授权码 非邮箱登录密码
	public static String AUTH_CODE="xxx";
        // 发件人邮箱
	public static String FROM="[email protected]";

	/**
	 * 发送邮件
	 * @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); // 根据自己的情况设置发用户名
			mailSender.setPassword(password); // 根据自己的情况 设置password

			Properties prop = new Properties();
			prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证用户名和密码是否正确
			prop.put("mail.smtp.timeout", "25000");

			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("[email protected]", "我是主题", sb.toString());

	}

}
 
 

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


猜你喜欢

转载自blog.csdn.net/chineseyoung/article/details/80291010