java发送邮件

package org.utils.mail;

import java.io.File;
import java.util.List;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.utils.mail.Mail;

public class EmailUtil {

	/**
	 * 发送纯文本设置
	 * 
	 * 
	 * @author 公司名 --
	 * 
	 *         2014-2-10 上午10:51:39
	 */
	public static void sendTextSecond(Mail mail) {
		JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
		// 设定mail server
		senderImpl.setHost(mail.getHost());
		// 设置端口号
		senderImpl.setPort(mail.getPort());
		// 建立邮件消息
		SimpleMailMessage mailMessage = new SimpleMailMessage();
		// 设置收件人,寄件人 用数组发送多个邮件
		// String[] array = new String[] {"sun111@163.com","sun222@sohu.com"};
		// mailMessage.setTo(array);
		// 设置收件人
		mailMessage.setTo(mail.getGetName());
		// 设置寄件人
		mailMessage.setFrom(mail.getSendName());
		// 标题
		mailMessage.setSubject(mail.getProject());
		// 内容
		mailMessage.setText(mail.getContent());
		// 根据自己的情况,设置username
		senderImpl.setUsername(mail.getSendName()); 
		// 根据自己的情况, 设置password
		senderImpl.setPassword(mail.getSendPwd()); 
		Properties prop = new Properties();
		// 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
		prop.put("mail.smtp.auth", "true");
		// 连接超时
		prop.put("mail.smtp.timeout", "100000000");
		senderImpl.setJavaMailProperties(prop);
		// 发送邮件
		senderImpl.send(mailMessage);
	}

	/**
	 * 发送html
	 * 
	 * @throws MessagingException
	 * 
	 * @author 公司名 -- 
	 * 
	 *         2014-2-10 上午10:51:08
	 */
	public static void sendHtml(Mail mail) throws MessagingException {
		JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
		// 建立邮件消息,发送text邮件和html邮件的区别
		MimeMessage mailMessage = senderImpl.createMimeMessage();
		// multipart模式 为true时发送附件 可以设置html格式
		MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
				true, "utf-8");
		// 设定mail server
		senderImpl.setHost(mail.getHost());
		// 设置端口号
		senderImpl.setPort(mail.getPort());
		// 设置收件人
		messageHelper.setTo(mail.getGetName());
		// 设置寄件人
				messageHelper.setFrom(mail.getSendName());
				// 标题
				messageHelper.setSubject(mail.getProject());
				// 内容
				messageHelper.setText( mail.getContent(), true);
				// 根据自己的情况,设置username
				senderImpl.setUsername(mail.getSendName()); 
				// 根据自己的情况, 设置password
				senderImpl.setPassword(mail.getSendPwd()); 
				Properties prop = new Properties();
				// 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
				prop.put("mail.smtp.auth", "true");
				// 连接超时
				prop.put("mail.smtp.timeout", "25000");
				senderImpl.setJavaMailProperties(prop);
				// 发送邮件
				senderImpl.send(mailMessage);
	}

	/**
	 * 发送包含附件
	 * 
	 * @throws MessagingException
	 * 
	 * @author 公司名 -- 
	 * 
	 *         2014-2-10 上午10:50:51
	 * @param fileUrl
	 */
	public static void sendAttach(List<File> mailFiles, List<String> mailFilesFileName,
			Mail mail) throws MessagingException {
		JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();

		// 建立邮件消息,发送text邮件和html邮件的区别
		MimeMessage mailMessage = senderImpl.createMimeMessage();
		// 注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,
		// multipart模式 为true时发送附件 可以设置html格式
		MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
				true, "utf-8");
		// 设定mail server
		senderImpl.setHost(mail.getHost());
		// 设置端口号
		senderImpl.setPort(mail.getPort());
		// 设置收件人
		messageHelper.setTo(mail.getGetName());
		// 设置寄件人
		messageHelper.setFrom(mail.getSendName());
		// 标题
		messageHelper.setSubject(mail.getProject());
		// 内容
		messageHelper.setText( mail.getContent(), true);

		for (int i = 0; i < mailFiles.size(); i++) {
			FileSystemResource file = new FileSystemResource(mailFiles.get(i));
			// 这里的方法调用和插入图片是不同的。
			messageHelper.addAttachment(mailFilesFileName.get(i), file);
		}
		// 根据自己的情况,设置username
		senderImpl.setUsername(mail.getSendName()); 
		// 根据自己的情况, 设置password
		senderImpl.setPassword(mail.getSendPwd()); 
		Properties prop = new Properties();
		// 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
		prop.put("mail.smtp.auth", "true");
		// 连接超时
		prop.put("mail.smtp.timeout", "25000");
		senderImpl.setJavaMailProperties(prop);
		// 发送邮件
		senderImpl.send(mailMessage);
	}
}
 
//需要的实体类Mail
package org.utils.mail;

/**
 * 发送邮件的一些信息 Package : 
 * 
 * @author 公司名 --
 * 
 *         2014-2-10 上午10:34:06
 * 
 */
public class Mail {

	/** 发件人邮箱 */
	private String sendName;
	/** 发件人密码 */
	private String sendPwd;
	/** 接受邮箱 */
	private String getName;
	/** 标题 */
	private String project;
	/** 内容 */
	private String content;
	/** 设置mail服务,例如smtp.163.com; */
	private String host;
	/** 设置端口 */
	private int port;

	public Mail(String sendName, String sendPwd, String getName,
			String project, String content, String host, int port) {
		super();
		this.sendName = sendName;
		this.sendPwd = sendPwd;
		this.getName = getName;
		this.project = project;
		this.content = content;
		this.host = host;
		this.port = port;
	}

	public Mail() {
		super();
		// TODO Auto-generated constructor stub
	}



	public String getSendName() {
		return sendName;
	}

	public void setSendName(String sendName) {
		this.sendName = sendName;
	}

	public String getSendPwd() {
		return sendPwd;
	}

	public void setSendPwd(String sendPwd) {
		this.sendPwd = sendPwd;
	}

	public String getGetName() {
		return getName;
	}

	public void setGetName(String getName) {
		this.getName = getName;
	}

	public String getProject() {
		return project;
	}

	public void setProject(String project) {
		this.project = project;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getHost() {
		return host;
	}

	public void setHost(String host) {
		this.host = host;
	}

	public int getPort() {
		return port;
	}

	public void setPort(int port) {
		this.port = port;
	}

}




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值