Java实现邮箱发送

package com.forenms.ycczj.email;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/**
 * 进行邮箱认证
 * 
 *
 */
public class EmailAutherticator extends Authenticator{
	
	private String userName;
	
	private String passWord;
	
	public EmailAutherticator(String userName, String passWord) {
		super();
		this.setUserName(userName);
		this.setPassWord(passWord);

	}

	public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(userName, passWord);
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassWord() {
		return passWord;
	}

	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}

}
package com.forenms.ycczj.email;

import java.util.Date;
import java.util.Properties;
import java.util.ResourceBundle;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;


public class SendMail {
	private static ResourceBundle bunder=ResourceBundle.getBundle("email");
	public static void main(String args[])throws Exception{
		String smsMob[]=new String[]{"xxxxxx@qq.com"};
		System.out.println(SendMail.sendMail("title 邮件的标题", smsMob, "content 邮件的内容"));
		
	}
	
	/**
	 * 发送邮件
	 * @param subject  标题
	 * @param to  接收方
	 * @param text  内容
	 * @param mimeType  类型("text/html;charset=gb2312")
	 * @throws Exception
	 */
	public static boolean sendMail(String subject, String[] to,String text) {
		boolean result=false;
		String smtp = bunder.getString("mail.smtp.host"); 
		String serverName = bunder.getString("mail.qq");
		String serverPaswd = bunder.getString("mail.from.password");
		String userMail=bunder.getString("mail.from");

		//设置连接邮件服务器属性
		Properties properties = System.getProperties(); 
		properties.put("mail.smtp.host", smtp); 
		properties.put("mail.smtp.auth", "true");

		//进行邮件服务器认证
		EmailAutherticator emailAuther = new EmailAutherticator(serverName, serverPaswd);
		//获取连接邮件服务器会话
		Session session = Session.getInstance(properties,(Authenticator)emailAuther);
		//设置邮件正文
		MimeMessage mimeMessage = new MimeMessage(session);
		Multipart multipart = new MimeMultipart();	
		try {
			//设置发送邮件人地址
			InternetAddress sentFrom = new InternetAddress(userMail);
			mimeMessage.setFrom(sentFrom); 		
			//设置接收邮件人地址
			InternetAddress[] sendTo = new InternetAddress[to.length];
			for (int i = 0; i < to.length; i++) {
				sendTo[i] = new InternetAddress(to[i]);
			}
			//mimeMessage.setRecipients(MimeMessage.RecipientType.TO,	sendTo);
			
			mimeMessage.setRecipients(MimeMessage.RecipientType.BCC,sendTo);				
			//设置邮件标题
			mimeMessage.setSubject(subject, "UTF-8");		
			//加入邮件正文信息
			MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();		
			//加入html
			mimeBodyPartHtml.setContent(text, "text/html;charset=gb2312");		
			multipart.addBodyPart(mimeBodyPartHtml);	
			//加入邮件正文
			mimeMessage.setContent(multipart);
			//加入发送时间
			mimeMessage.setSentDate(new Date());		
			//保存信息
			mimeMessage.saveChanges();
			//发送邮件
			Transport.send(mimeMessage);
			result=true;
		} catch (Exception e) {			
			//e.printStackTrace();
			return false;
		}
		return result;
	}

	/**
	 * 发送邮件(加入附件)
	 * @param subject  标题
	 * @param to  接收方
	 * @param text  内容
	 * @param fileName  发送文件
	 * @param mimeType  类型("text/html;charset=gb2312")
	 * @throws Exception
	 */
	public static void sendMailToFile(String subject, String[] to,String text, String fileName) throws Exception {

		String smtp = "smtp.163.com"; 
		String serverName = "xxxxxx";
		String serverPaswd = "xxxxxxxxx";
		String userMail="xxxxxxx@163.com";

		//设置连接邮件服务器属性
		Properties properties = System.getProperties(); 
		properties.put("mail.smtp.host", smtp); 
		properties.put("mail.smtp.auth", "true");

		//进行邮件服务器认证
		EmailAutherticator emailAuther = new EmailAutherticator(serverName, serverPaswd);
		//获取连接邮件服务器会话
		Session session = Session.getInstance(properties,(Authenticator)emailAuther);
		//设置邮件正文
		MimeMessage mimeMessage = new MimeMessage(session);
		Multipart multipart = new MimeMultipart();		
		//设置发送邮件人地址
		InternetAddress sentFrom = new InternetAddress(userMail);
		mimeMessage.setFrom(sentFrom); 		
		//设置接收邮件人地址
		InternetAddress[] sendTo = new InternetAddress[to.length];
		for (int i = 0; i < to.length; i++) {
			sendTo[i] = new InternetAddress(to[i]);
		}
		//mimeMessage.setRecipients(MimeMessage.RecipientType.TO,	sendTo);
		
		mimeMessage.setRecipients(MimeMessage.RecipientType.BCC,sendTo);		
		
		
		//设置邮件标题
		mimeMessage.setSubject(subject, "UTF-8");		
		//加入邮件正文信息
		MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();		
		//加入html
		mimeBodyPartHtml.setContent(text, "text/html;charset=gb2312");		
		multipart.addBodyPart(mimeBodyPartHtml);
		//加入附件	
		MimeBodyPart mimeBodyPartFile = new MimeBodyPart();
		//附件文件路径
		String filename = fileName.split(",")[0];
		//附件文件名称
		String displayname = fileName.split(",")[1];
		//获取文件流
		FileDataSource fds = new FileDataSource(filename);
		mimeBodyPartFile.setDataHandler(new DataHandler(fds));
		mimeBodyPartFile.setFileName(MimeUtility.encodeText(displayname));
		multipart.addBodyPart(mimeBodyPartFile);		
		//加入邮件正文
		mimeMessage.setContent(multipart);
		//加入发送时间
		mimeMessage.setSentDate(new Date());		
		//保存信息
		mimeMessage.saveChanges();

		//发送邮件
		Transport.send(mimeMessage);
	}
	
}

email.properties

mail.smtp.host=smtp.qq.com
mail.smtp.auth=true
mail.from=xxxxxx@qq.com
mail.qq=xxxxxx
mail.from.password=******
mail.smtp.timeout=25000
mail.smtp.starttls.enable=true


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值