【自用】嘿!这里有你的一封邮件

邮件发送

package com.bao.test;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Test {
	public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {
		Properties props=new Properties();
		//邮箱协议
		props.setProperty("mail.transport.protocol", "smtp");
		//qq邮箱的stmp协议地址
		props.setProperty("mail.smtp.host", "smtp.qq.com");
		//端口号
		props.setProperty("mail.smtp.port", "465");//或587
		//是否需要授权(true)
		props.setProperty("mail.smtp.auth", "true");
		
		//163邮箱配到这里就结束了,qq邮箱还需要SSL安全认证
		props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		//没有ssl认证不处理
		props.setProperty("mail.smtp.socketFactory.fallback","false");
		//配端口
		props.setProperty("mail.smtp.socketFactory.port", "465");
		
		
		Session session=Session.getInstance(props);
		
		//创建邮件(发件人,收件人,抄送人,密送人)
		MimeMessage message=createMimeMessage(session, "发件人邮箱", "", "", "");
		//发送
		Transport transport = session.getTransport();
		transport.connect("发件人邮箱","识别码");
		//all发送
		transport.sendMessage(message,message.getAllRecipients());
	}
	
	//邮件
	public static MimeMessage createMimeMessage(Session session,String send,String receive,String cReceive,String mReceive) throws MessagingException, UnsupportedEncodingException {
		MimeMessage message=new MimeMessage(session);
		Address address=new InternetAddress(send,"发件人名字","utf-8");
		
		message.setFrom(address);//发件人
		message.setSubject("这是一个标题","utf-8");//邮件标题
		message.setContent("正文内容、、、、、hello","text/html,charset=utf-8");//正文
		//to普通收件人,cc抄送,bcc密送
		message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receive,"收件人A","utf-8"));
		message.setRecipient(MimeMessage.RecipientType.CC,new InternetAddress(cReceive,"收件人B","utf-8"));
		message.setRecipient(MimeMessage.RecipientType.BCC,new InternetAddress(mReceive,"收件人C","utf-8"));
		message.setSentDate(new Date());//发送日期
		message.saveChanges();//保存
		return message;
		
		
	}
}

带附件的邮件发送

package com.bao.test;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;

public class Test {
	public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {
		Properties props=new Properties();
		//邮箱协议
		props.setProperty("mail.transport.protocol", "smtp");
		//qq邮箱的stmp协议地址
		props.setProperty("mail.smtp.host", "smtp.qq.com");
		//端口号
		props.setProperty("mail.smtp.port", "465");//或587
		//是否需要授权(true)
		props.setProperty("mail.smtp.auth", "true");
		
		//163邮箱配到这里就结束了,qq邮箱还需要SSL安全认证
		props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		//没有ssl认证不处理
		props.setProperty("mail.smtp.socketFactory.fallback","false");
		//配端口
		props.setProperty("mail.smtp.socketFactory.port", "465");
		
		
		Session session=Session.getInstance(props);
		
		//创建邮件(发件人,收件人,抄送人,密送人)
		MimeMessage message=createMimeMessage(session, "发件人", "", "", "");
		//发送
		Transport transport = session.getTransport();
		transport.connect("发件人","检验码");
		//all发送
		transport.sendMessage(message,message.getAllRecipients());
	}
	
	//邮件
	public static MimeMessage createMimeMessage(Session session,String send,String receive,String cReceive,String mReceive) throws MessagingException, UnsupportedEncodingException {
		MimeMessage message=new MimeMessage(session);
		Address address=new InternetAddress(send,"发件人名字","utf-8");
		message.setFrom(address);//发件人
		message.setSubject("这是一个标题","utf-8");//邮件标题
		
		
		//创建图片节点
		MimeBodyPart image=new MimeBodyPart();
		DataHandler imdatahandler=new DataHandler(new FileDataSource("src/a.jpg"));
		image.setDataHandler(imdatahandler);
		image.setContentID("tupian");
		
		//创建文本节点,目的是为了加载图片节点
		MimeBodyPart text=new MimeBodyPart();
		text.setContent("正文内容、、、、、hello,img:<img src='cid:tupian' />","text/html;charset=utf-8");
		
		
		//把图片节点和文本节点合并成一个新节点
		MimeMultipart mm_text_image=new MimeMultipart();
		mm_text_image.addBodyPart(image);
		mm_text_image.addBodyPart(text);
		mm_text_image.setSubType("related");//关联关系
		
		//注意正文中只能出现MimeBodyPart普通节点 不能出现复合节点MimeMultpart
		MimeBodyPart t_m_bodypart=new MimeBodyPart();
		t_m_bodypart.setContent(mm_text_image);
		
		
		//图片->文本节点->符合节点->根据要求 变成普通节点
		//附件
		MimeBodyPart attachment=new MimeBodyPart();
		DataHandler fileDataHandler=new DataHandler(new FileDataSource("src/a.png"));
		attachment.setDataHandler(fileDataHandler);
		//给附件设置文件名
		attachment.setFileName(MimeUtility.encodeText(fileDataHandler.getName()));
		
		//将"图片和文本"节点,与附件节点变成一个新节点
		MimeMultipart mm=new MimeMultipart();
		mm.addBodyPart(t_m_bodypart);
		mm.addBodyPart(attachment);
		mm.setSubType("mixed");//混合关系
		
		//原来的正文 
		message.setContent(mm,"text/html,charset=utf-8");
		
		//to普通收件人,cc抄送,bcc密送
		message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receive,"收件人A","utf-8"));
		message.setRecipient(MimeMessage.RecipientType.CC,new InternetAddress(cReceive,"收件人B","utf-8"));
		message.setRecipient(MimeMessage.RecipientType.BCC,new InternetAddress(mReceive,"收件人C","utf-8"));
		message.setSentDate(new Date());//发送日期
		message.saveChanges();//保存
		return message;
		
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值