java工具类SendEmailUtil实现发送邮件
本文实例为大家分享了java实现发送邮件的工具类,供大家参考,具体内容如下
SendEmailUtil
javax.mail 1.4.5
importjavax.mail.Address;
importjavax.mail.Message;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeMessage;
importcom.sun.mail.util.MailSSLSocketFactory;
importjava.io.FileOutputStream;
importjava.io.OutputStream;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.Properties;
publicclassSendmailUtil{
//邮件服务器主机名
//QQ邮箱的SMTP服务器地址为:smtp.qq.com
privatestaticStringmyEmailSMTPHost="smtp.qq.com";
//发件人邮箱
privatestaticStringmyEmailAccount="xxxxxxxxxx@xx.com";
//发件人邮箱密码(授权码)
//在开启SMTP服务时会获取到一个授权码,把授权码填在这里
privatestaticStringmyEmailPassword="xxxxxxxxxxxx";
/**
*邮件单发(自由编辑短信,并发送,适用于私信)
*
*@paramtoEmailAddress收件箱地址
*@paramemailTitle邮件主题
*@paramemailContent邮件内容
*@throwsException
*/
publicstaticvoidsendEmail(StringtoEmailAddress,StringemailTitle,StringemailContent)throwsException{
Propertiesprops=newProperties();
//开启debug调试
props.setProperty("mail.debug","true");
//发送服务器需要身份验证
props.setProperty("mail.smtp.auth","true");
//端口号
props.put("mail.smtp.port",465);
//设置邮件服务器主机名
props.setProperty("mail.smtp.host",myEmailSMTPHost);
//发送邮件协议名称
props.setProperty("mail.transport.protocol","smtp");
/**SSL认证,注意腾讯邮箱是基于SSL加密的,所以需要开启才可以使用**/
MailSSLSocketFactorysf=newMailSSLSocketFactory();
sf.setTrustAllHosts(true);
//设置是否使用ssl安全连接(一般都使用)
props.put("mail.smtp.ssl.enable","true");
props.put("mail.smtp.ssl.socketFactory",sf);
//创建会话
Sessionsession=Session.getInstance(props);
//获取邮件对象
//发送的消息,基于观察者模式进行设计的
Messagemsg=newMimeMessage(session);
//设置邮件标题
msg.setSubject(emailTitle);
//设置邮件内容
//使用StringBuilder,因为StringBuilder加载速度会比String快,而且线程安全性也不错
StringBuilderbuilder=newStringBuilder();
//写入内容
builder.append("\n"+emailContent);
//写入我的官网
builder.append("\n官网:"+"https://www.hbuecx.club");
//定义要输出日期字符串的格式
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
//在内容后加入邮件发送的时间
builder.append("\n时间:"+sdf.format(newDate()));
//设置显示的发件时间
msg.setSentDate(newDate());
//设置邮件内容
msg.setText(builder.toString());
//设置发件人邮箱
//InternetAddress的三个参数分别为:发件人邮箱,显示的昵称(只用于显示,没有特别的要求),昵称的字符集编码
msg.setFrom(newInternetAddress(myEmailAccount,"你好!","UTF-8"));
//得到邮差对象
Transporttransport=session.getTransport();
//连接自己的邮箱账户
//密码不是自己QQ邮箱的密码,而是在开启SMTP服务时所获取到的授权码
//connect(host,user,password)
transport.connect(myEmailSMTPHost,myEmailAccount,myEmailPassword);
//发送邮件
transport.sendMessage(msg,newAddress[]{newInternetAddress(toEmailAddress)});
//将该邮件保存到本地
OutputStreamout=newFileOutputStream("MyEmail.eml");
msg.writeTo(out);
out.flush();
out.close();
transport.close();
}
}
//toEmailAddress目标邮箱地址 //emailTitle邮件标题 //emailContent邮件内容 SendmailUtil.sendEmail(toEmailAddress,emailTitle,emailContent);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。