java实现发送email小案例
这是一个小的发送emai的案例,供大家参考,具体内容如下
代码里面放了很多注解,这里多说无益。
发送邮件实体类:
packagecom.yqx.emaildemo.demo;
importlombok.Data;
importorg.apache.commons.mail.EmailAttachment;
importjava.util.List;
/**
*发送邮件实体类
*
*@authorYangChingyu-k
*@date2019/10/1014:59
*/
@Data
publicclassMailInfo{
/**
*收件人
*/
privateListtoAddress=null;
/**
*抄送人地址
*/
privateListccAddress=null;
/**
*密送人
*/
privateListbccAddress=null;
/**
*附件信息
*/
privateListemailAttachments=null;
/**
*邮件主题
*/
privateStringsubject;
/**
*邮件文本内容
*/
privateStringcontent;
publicvoidaddToAddress(StringtoAddress){
this.toAddress.add(toAddress);
}
publicvoidaddToAddress(ListtoAddress){
this.toAddress.addAll(toAddress);
}
publicvoidaddCcAddress(ListccAddress){
if(!ccAddress.isEmpty()){
this.ccAddress.addAll(ccAddress);
}
}
}
工具类:
packagecom.yqx.emaildemo.demo;
importorg.apache.commons.mail.EmailAttachment;
importorg.apache.commons.mail.HtmlEmail;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.List;
/**
*发送邮件辅助工具类
*
*@authorYangChingyu-k
*@date2019/10/1015:12
*/
publicclassMailUtil{
/**
*邮箱
*/
privatestaticStringmailServerHost="smtp.qq.com";
privatestaticStringmailSenderAddress="xxx@qq.com";
privatestaticStringmailSenderNick="YangChingyu-k";
privatestaticStringmailSenderUserName="xxx@qq.com";
//这里的密码是开启服务之后的授权码
privatestaticStringmailSenderPassWord="xxx";
/**
*发送邮件(Html格式,支持附件)
*
*@parammailInfo
*/
publicstaticvoidsendMail(MailInfomailInfo){
try{
//利用jar包中提供的HtmlEmail类
HtmlEmailemail=newHtmlEmail();
//配置信息
//这里用的是QQ邮箱的地址,不同的邮箱采用的地址不同,官方有说明
email.setHostName(mailServerHost);
//发送的地址,发送者昵称
email.setFrom(mailSenderAddress,mailSenderNick);
//用户名,密码(这里的密码不是登录密码,而是开启POP3/SMTP服务之后获取的授权密码)
email.setAuthentication(mailSenderUserName,mailSenderPassWord);
//编码
email.setCharset("UTF-8");
//主题
email.setSubject(mailInfo.getSubject());
//内容
email.setHtmlMsg(mailInfo.getContent());
//添加附件
ListemailAttachments=mailInfo.getEmailAttachments();
if(!emailAttachments.isEmpty()){
for(inti=0;itoAddress=mailInfo.getToAddress();
if(!toAddress.isEmpty()){
for(inti=0;iccAddress=mailInfo.getCcAddress();
if(!ccAddress.isEmpty()){
for(inti=0;ibccAddress=mailInfo.getBccAddress();
if(!bccAddress.isEmpty()){
for(inti=0;i
测试main方法:
packagecom.yqx.emaildemo.demo;
importorg.apache.commons.mail.EmailAttachment;
importjava.util.ArrayList;
importjava.util.List;
/**
*测试:发送邮件(先new出邮件实体类,赋值之后,再利用工具类方法进行发送操作)
*
*注重点:
*1)邮箱需要开启POP3/SMTP服务
*2)使用的邮箱密码不是登录时的密码,而是开启以上服务之后的授权码
*3)邮箱地址必须是正确存在的,否则将会被退信处理
*
*
*@authorYangChingyu-k
*@date2019/10/1015:53
*/
publicclassMainTest{
publicstaticvoidmain(String[]args){
MailInfomailInfo=newMailInfo();
//收件人
ListtoList=newArrayList<>();
toList.add("xxx.com");
//抄送人
ListccList=newArrayList<>();
ccList.add("xxx@qq.com");
//密送人
ListbccList=newArrayList<>();
bccList.add("xxx@qq.com");
//添加附件
EmailAttachmentemailAttachment=newEmailAttachment();
//文件全路径
emailAttachment.setPath("C:/Users/YangChingyu-k/Desktop/lemon.txt");
//附件:文件全名(文件名+.格式)
emailAttachment.setName("这是一个测试的附件.txt");
//多个附件
ListemailAttachments=newArrayList<>();
emailAttachments.add(emailAttachment);
mailInfo.setEmailAttachments(emailAttachments);
//收件人
mailInfo.setToAddress(toList);
//抄送人
mailInfo.setCcAddress(ccList);
//密送人
mailInfo.setBccAddress(bccList);
//主题
mailInfo.setSubject("Thisisaobject");
//内容
mailInfo.setContent("这是一段测试的内容~
");
//调用工具类方法进行发送
MailUtil.sendMail(mailInfo);
}
}
我觉得注释应该写得很清楚了吧,这是作为一个demo来写的,分享一下,在写的时候一直遇到找不到地址之类的,或者服务没开之类的报错,这里都写了注重点的东西,这是第一次在代码里面一直写很多注释。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。