public class EmailUtil
{
/**
*
* @param to 收件人电子邮箱
* @param from 发件人电子邮箱
* @param fromPassport 发件人的密码
* @param host 邮件服务器
* @param content 设置HTML内容
* @param headContentFrom Set From: 头部头字段
* @param headContentTo Set To: 头部头字段
* @param subject Set Subject: 主题文字
* @param filename 设置要发送附件的文件路径
* @return
* @throws java.io.UnsupportedEncodingException
* @throws java.security.GeneralSecurityException
*/
public String send( String to, String from, String fromPassport, String host, String content, String headContentFrom, String headContentTo, String subject, String filename ) throws UnsupportedEncodingException, GeneralSecurityException, Exception
{
try
{
// 获取系统属性
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty( "mail.smtp.host", host );
properties.put( "mail.smtp.auth", "true" );
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts( true );
properties.put( "mail.smtp.ssl.enable", "true" );
properties.put( "mail.smtp.ssl.socketFactory", sf );
// 获取默认session对象
Session session = Session.getDefaultInstance( properties, new javax.mail.Authenticator()
{
@Override
public PasswordAuthentication getPasswordAuthentication()
{ //qq邮箱服务器账户、第三方登录授权码
return new PasswordAuthentication( from, fromPassport ); //发件人邮件用户名、密码
}
} );
try
{
// 创建默认的 MimeMessage 对象
MimeMessage message = new MimeMessage( session );
// Set From: 头部头字段
message.setFrom( new InternetAddress( from, headContentFrom, "UTF-8" ) );
// Set To: 头部头字段
message.setRecipient( MimeMessage.RecipientType.TO, new InternetAddress( to, headContentTo, "UTF-8" ) );
// Set Subject: 主题文字
message.setSubject( subject, "UTF-8" );
// 创建消息部分
BodyPart messageBodyPart = new MimeBodyPart();
// 消息
// messageBodyPart.setText( "这是正文" );
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent( "<div style='color:red;'>"+ content +"</div>", "text/html; charset=utf-8" );
mainPart.addBodyPart( html );
messageBodyPart.setContent( mainPart );
// 创建多重消息
Multipart multipart = new MimeMultipart();
// 设置文本消息部分
multipart.addBodyPart( messageBodyPart );
messageBodyPart = new MimeBodyPart();
//设置要发送附件的文件路径
if( filename.length () > 0 )
{
String [] filenameArray = filename.split( ",");
for( int i = 0; i < filenameArray.length; i++ )
{
DataSource source = new FileDataSource( filenameArray[0] );
messageBodyPart.setDataHandler( new DataHandler( source ) );
//处理附件名称中文(附带文件路径)乱码问题
messageBodyPart.setFileName( MimeUtility.encodeText( filenameArray[0] ) );
multipart.addBodyPart( messageBodyPart );
}
}
// 发送完整消息
message.setContent( multipart );
// 发送消息
Transport.send( message );
}
catch( MessagingException mex )
{
mex.printStackTrace();
}
catch ( UnsupportedEncodingException ex )
{
throw new UnsupportedEncodingException( ex.getMessage () );
}
catch ( Exception ex )
{
throw new Exception( ex.getMessage () );
}
}
catch( GeneralSecurityException ex )
{
throw new GeneralSecurityException( ex.getMessage () );
}
return null;
}
}
{
/**
*
* @param to 收件人电子邮箱
* @param from 发件人电子邮箱
* @param fromPassport 发件人的密码
* @param host 邮件服务器
* @param content 设置HTML内容
* @param headContentFrom Set From: 头部头字段
* @param headContentTo Set To: 头部头字段
* @param subject Set Subject: 主题文字
* @param filename 设置要发送附件的文件路径
* @return
* @throws java.io.UnsupportedEncodingException
* @throws java.security.GeneralSecurityException
*/
public String send( String to, String from, String fromPassport, String host, String content, String headContentFrom, String headContentTo, String subject, String filename ) throws UnsupportedEncodingException, GeneralSecurityException, Exception
{
try
{
// 获取系统属性
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty( "mail.smtp.host", host );
properties.put( "mail.smtp.auth", "true" );
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts( true );
properties.put( "mail.smtp.ssl.enable", "true" );
properties.put( "mail.smtp.ssl.socketFactory", sf );
// 获取默认session对象
Session session = Session.getDefaultInstance( properties, new javax.mail.Authenticator()
{
@Override
public PasswordAuthentication getPasswordAuthentication()
{ //qq邮箱服务器账户、第三方登录授权码
return new PasswordAuthentication( from, fromPassport ); //发件人邮件用户名、密码
}
} );
try
{
// 创建默认的 MimeMessage 对象
MimeMessage message = new MimeMessage( session );
// Set From: 头部头字段
message.setFrom( new InternetAddress( from, headContentFrom, "UTF-8" ) );
// Set To: 头部头字段
message.setRecipient( MimeMessage.RecipientType.TO, new InternetAddress( to, headContentTo, "UTF-8" ) );
// Set Subject: 主题文字
message.setSubject( subject, "UTF-8" );
// 创建消息部分
BodyPart messageBodyPart = new MimeBodyPart();
// 消息
// messageBodyPart.setText( "这是正文" );
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent( "<div style='color:red;'>"+ content +"</div>", "text/html; charset=utf-8" );
mainPart.addBodyPart( html );
messageBodyPart.setContent( mainPart );
// 创建多重消息
Multipart multipart = new MimeMultipart();
// 设置文本消息部分
multipart.addBodyPart( messageBodyPart );
messageBodyPart = new MimeBodyPart();
//设置要发送附件的文件路径
if( filename.length () > 0 )
{
String [] filenameArray = filename.split( ",");
for( int i = 0; i < filenameArray.length; i++ )
{
DataSource source = new FileDataSource( filenameArray[0] );
messageBodyPart.setDataHandler( new DataHandler( source ) );
//处理附件名称中文(附带文件路径)乱码问题
messageBodyPart.setFileName( MimeUtility.encodeText( filenameArray[0] ) );
multipart.addBodyPart( messageBodyPart );
}
}
// 发送完整消息
message.setContent( multipart );
// 发送消息
Transport.send( message );
}
catch( MessagingException mex )
{
mex.printStackTrace();
}
catch ( UnsupportedEncodingException ex )
{
throw new UnsupportedEncodingException( ex.getMessage () );
}
catch ( Exception ex )
{
throw new Exception( ex.getMessage () );
}
}
catch( GeneralSecurityException ex )
{
throw new GeneralSecurityException( ex.getMessage () );
}
return null;
}
}