利用JavaMail发送邮件:smtp.163.com
程序员文章站
2022-07-02 17:40:34
一、利用JavaMail发送邮件案例: 1、maven项目结构: 2、先在pom.xml里边加入Javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven): 3、配置email.properties属性文件,主要是为了不更改代码的前提下,该改变发送邮件的一些基本信息: 4、实 ......
一、利用javamail发送邮件案例:
1、maven项目结构:
2、先在pom.xml里边加入javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven):
3、配置email.properties属性文件,主要是为了不更改代码的前提下,该改变发送邮件的一些基本信息:
4、实现发送邮件的主体类sendmailutils,代码下:
package top.hzelin.util; import java.io.ioexception; import java.io.inputstream; import java.util.properties; import javax.mail.bodypart; import javax.mail.message; import javax.mail.messagingexception; import javax.mail.multipart; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimebodypart; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; public class sendmailutils { private static string from = ""; private static string user = ""; private static string password = ""; /* * 读取属性文件的内容,并为上面上个属性赋初始值 */ static { properties prop = new properties(); inputstream is = sendmailutils.class.getclassloader().getresourceasstream("email.properties"); try { prop.load(is); from = prop.getproperty("from"); user=prop.getproperty("username"); password=prop.getproperty("password"); } catch (ioexception e) { e.printstacktrace(); } } public static void sendmail(string to,string text,string title) { properties props = new properties(); props.setproperty("mail.smtp.host", "smtp.163.com");//设置邮件服务器主机名 props.put("mail.smtp.host", "smtp.163.com"); props.put("mail.smtp.auth", "true");//发送服务器需要身份验证 session session = session.getdefaultinstance(props);//设置环境信息 session.setdebug(true); mimemessage message = new mimemessage(session); multipart multipart = null; bodypart contentpart = null; transport transport = null; try { message.setfrom(from);//设置发件人 message.addrecipient(message.recipienttype.to, new internetaddress(to)); message.setsubject(title); multipart = new mimemultipart();//设置附件 contentpart = new mimebodypart(); contentpart.setcontent(text, "text/html;charset=utf-8"); multipart.addbodypart(contentpart); message.setcontent(multipart); message.savechanges(); transport = session.gettransport("smtp"); transport.connect("smtp.163.com", user, password); transport.sendmessage(message, message.getallrecipients()); } catch (messagingexception e) { e.printstacktrace(); }finally { try { transport.close(); } catch (messagingexception e) { e.printstacktrace(); } } } }
5、测试发送邮件功能是否可用sendemailtest:
注意:email.properties配置文件中的密码应该是客户端授权码,不是登录密码,设置位置如下: