java Mail 实现qq邮箱简单文本邮件发送

阅读:914 2019-03-20 14:09:07 来源:csdn

所需jar包

javax.mail.jar

下载地址:https://github.com/javaee/javamail/releases

csdn下载地址:http://download.csdn.net/download/jasonhector/10103189

限制:需要jdk1.7以及以上版本

邮箱开通服务

qq邮箱》》设置》》账户》》pop3..服务开启前两个

开启后会得到一个序列即为当作代码中的邮箱密码使用

代码

配置文件我是保存在properties文件中了,比较安全

packagecom.huiyi.utils;importiceinternal.ex;importorg.slf4j.loggerfactory;importjavax.mail.session;importjavax.mail.transport;importjavax.mail.internet.internetaddress;importjavax.mail.internet.mimemessage;importjava.io.inputstream;importjava.util.date;importjava.util.properties;importjava.util.logging.logger;publicclassmailsender{privatestaticloggerlogger=logger.getlogger("mailsender.class");/***发送邮件*@paramreceivemail收件人*@paramtopicline邮件标题*@paramcontent内容*@return*@throwsexception*/publicstaticbooleansendmail(stringreceivemail,stringtopicline,stringcontent)throwsexception{booleanresult=true;//1.创建参数配置,用于连接邮件服务器的参数配置propertiesprops=newproperties();try{inputstreamin=mailsender.class.getresourceasstream("/mail.properties");props.load(in);}catch(exceptione){result=false;}stringmail_account=props.getproperty("mail_account");stringmail_pwd=props.getproperty("mail_password");//使用的协议(javamail规范要求)props.setproperty("mail.transport.protocol",props.getproperty("mail_transport_protocol"));//发件人的邮箱的smtp服务器地址props.setproperty("mail.smtp.host",props.getproperty("mail_smtp_host"));//是否需要请求认证props.setproperty("mail.smtp.auth",props.getproperty("mail_smtp_auth"));//qq端口465或者587props.setproperty("mail.smtp.port",props.getproperty("mail_smtp_port"));//2.根据配置创建会话对象,用于和邮件服务器交互sessionsession=session.getinstance(props);session.setdebug(true);//设置为debug模式,可以查看详细的发送log//3.创建一封邮件mimemessagemessage=createmimemessage(session,mail_account,receivemail,topicline,content);//4.根据session获取邮件传输对象try{transporttransport=session.gettransport();transport.connect(mail_account,mail_pwd);//6.发送邮件,发到所有的收件地址,message.getallrecipients()获取到的是在创建邮件对象时添加的所有收件人,抄送人,密送人transport.sendmessage(message,message.getallrecipients());//7.关闭连接transport.close();logger.info("mailhasbeensend");}catch(exceptione){result=false;}returnresult;}/***创建一封只包含文本的简单邮件**@paramsession和服务器交互的会话*@paramsendmail发件人邮箱*@paramreceivemail收件人邮箱*@return*@throwsexception*/publicstaticmimemessagecreatemimemessage(sessionsession,stringsendmail,stringreceivemail,stringtopicline,stringcontent)throwsexception{//1.创建一封邮件mimemessagemessage=newmimemessage(session);//2.from:发件人message.setfrom(newinternetaddress(sendmail,"internet","utf-8"));//3.to:收件人(可以增加多个收件人、抄送、密送)message.setrecipient(mimemessage.recipienttype.to,newinternetaddress(receivemail,"尊敬的用户","utf-8"));//4.subject:邮件主题(message.setsubject(topicline,"utf-8");//5.content:邮件正文(可以使用html标签)message.setcontent(content,"text/html;charset=utf-8");//6.设置发件时间message.setsentdate(newdate());//7.保存设置message.savechanges();returnmessage;}}

properties文件配置

#mail_account//发送邮件方账号mail_account=*********@qq.com#mail_password开通pop服务获取的动态密匙mail_password=***********#mail_smtp发件人邮箱的smtp服务器地址mail_stmp=smtp.qq.com#mail_transport_protocol使用的协议(javamail规范要求)mail_transport_protocol=smtp#mail_smtp_host发件人的邮箱的smtp服务器地址mail_smtp_host=smtp.qq.com#mail_smtp_auth是否需要请求认证mail_smtp_auth=true#mail_smtp_port587or465mail_smtp_port=587

ps:

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服