900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java企业邮箱发送_java使用网易163企业个性域名邮箱发送邮件教程

java企业邮箱发送_java使用网易163企业个性域名邮箱发送邮件教程

时间:2019-03-10 21:03:11

相关推荐

java企业邮箱发送_java使用网易163企业个性域名邮箱发送邮件教程

本文作者具有著作权,转载前倾注明来源:留在青山的博客

在我的很久之前的一篇博文里,我使用简单的代码 实现了java发送126邮箱邮件的功能,但是今天我自己注册了一个个性化的域名,我想通过我自己的域名邮箱来发送邮件,仍旧使用以前的那个代码发现始终报错,于是 ,进过各种尝试,终于解决了java发送163个性化域名企业邮箱邮件的功能,下面直接上代码:

封装要发送的邮件实体类代码:packagecom.blog.test.mail;

importjava.util.Properties;

/**

*发送邮件需要使用的基本信息对象类

*@authorguopengfei

*

*留在青山的博客(https://www.blog-/liuzaiqingshan/home)

*

*/

publicclassMailSenderInfo{

//发送邮件的服务器的IP和端口

privateStringmailServerHost;

privateStringmailServerPort="25";

//邮件发送者的地址

privateStringfromAddress;

//邮件接收者的地址

privateStringtoAddress;

//登陆邮件发送服务器的用户名和密码

privateStringuserName;

privateStringpassword;

//是否需要身份验证

privatebooleanvalidate=false;

//邮件主题

privateStringsubject;

//邮件的文本内容

privateStringcontent;

//邮件附件的文件名

privateString[]attachFileNames;

/**

*获得邮件会话属性

*/

publicPropertiesgetProperties(){

Propertiesp=newProperties();

p.put("mail.smtp.host",this.mailServerHost);

p.put("mail.smtp.port",this.mailServerPort);

p.put("mail.smtp.auth",validate?"true":"false");

returnp;

}

publicStringgetMailServerHost(){

returnmailServerHost;

}

publicvoidsetMailServerHost(StringmailServerHost){

this.mailServerHost=mailServerHost;

}

publicStringgetMailServerPort(){

returnmailServerPort;

}

publicvoidsetMailServerPort(StringmailServerPort){

this.mailServerPort=mailServerPort;

}

publicbooleanisValidate(){

returnvalidate;

}

publicvoidsetValidate(booleanvalidate){

this.validate=validate;

}

publicString[]getAttachFileNames(){

returnattachFileNames;

}

publicvoidsetAttachFileNames(String[]fileNames){

this.attachFileNames=fileNames;

}

publicStringgetFromAddress(){

returnfromAddress;

}

publicvoidsetFromAddress(StringfromAddress){

this.fromAddress=fromAddress;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicStringgetToAddress(){

returntoAddress;

}

publicvoidsetToAddress(StringtoAddress){

this.toAddress=toAddress;

}

publicStringgetUserName(){

returnuserName;

}

publicvoidsetUserName(StringuserName){

this.userName=userName;

}

publicStringgetSubject(){

returnsubject;

}

publicvoidsetSubject(Stringsubject){

this.subject=subject;

}

publicStringgetContent(){

returncontent;

}

publicvoidsetContent(StringtextContent){

this.content=textContent;

}

}

身份验证时封装的类信息:packagecom.blog.test.mail;

importjavax.mail.*;

/**

*

*@authorguopengfei

*

*/

publicclassMyAuthenticatorextendsAuthenticator{

StringuserName=null;

Stringpassword=null;

publicMyAuthenticator(){

}

publicMyAuthenticator(Stringusername,Stringpassword){

this.userName=username;

this.password=password;

}

protectedPasswordAuthenticationgetPasswordAuthentication(){

returnnewPasswordAuthentication(userName,password);

}

}

实际发送类代码:packagecom.blog.test.mail;

importjava.util.Date;

importjava.util.Properties;

importjavax.mail.Address;

importjavax.mail.BodyPart;

importjavax.mail.Message;

importjavax.mail.MessagingException;

importjavax.mail.Multipart;

importjavax.mail.Session;

importjavax.mail.Transport;

importjavax.mail.internet.InternetAddress;

importjavax.mail.internet.MimeBodyPart;

importjavax.mail.internet.MimeMessage;

importjavax.mail.internet.MimeMultipart;

/**

*邮件(可以携带附件的邮件)发送器

*

*@authorguopengfei

*留在青山的博客(https://www.blog-/liuzaiqingshan/home)

*

*/

publicclassSimpleMailSender{

/**

*以文本格式发送邮件

*

*@parammailInfo

*待发送的邮件的信息

*/

publicbooleansendTextMail(MailSenderInfomailInfo){

//判断是否需要身份认证

MyAuthenticatorauthenticator=null;

Propertiespro=mailInfo.getProperties();

if(mailInfo.isValidate()){

//如果需要身份认证,则创建一个密码验证器

authenticator=newMyAuthenticator(mailInfo.getUserName(),

mailInfo.getPassword());

}

//根据邮件会话属性和密码验证器构造一个发送邮件的session

SessionsendMailSession=Session

.getDefaultInstance(pro,authenticator);

try{

//根据session创建一个邮件消息

MessagemailMessage=newMimeMessage(sendMailSession);

//创建邮件发送者地址

Addressfrom=newInternetAddress(mailInfo.getFromAddress());

//设置邮件消息的发送者

mailMessage.setFrom(from);

//创建邮件的接收者地址,并设置到邮件消息中

Addressto=newInternetAddress(mailInfo.getToAddress());

mailMessage.setRecipient(Message.RecipientType.TO,to);

//设置邮件消息的主题

mailMessage.setSubject(mailInfo.getSubject());

//设置邮件消息发送的时间

mailMessage.setSentDate(newDate());

//设置邮件消息的主要内容

StringmailContent=mailInfo.getContent();

mailMessage.setText(mailContent);

//发送邮件

Transport.send(mailMessage);

returntrue;

}catch(MessagingExceptionex){

ex.printStackTrace();

}

returnfalse;

}

/**

*以HTML格式发送邮件

*

*@parammailInfo

*待发送的邮件信息

*/

publicbooleansendHtmlMail(MailSenderInfomailInfo){

//判断是否需要身份认证

MyAuthenticatorauthenticator=null;

Propertiespro=mailInfo.getProperties();

//如果需要身份认证,则创建一个密码验证器

if(mailInfo.isValidate()){

authenticator=newMyAuthenticator(mailInfo.getUserName(),

mailInfo.getPassword());

}

//根据邮件会话属性和密码验证器构造一个发送邮件的session

SessionsendMailSession=Session

.getDefaultInstance(pro,authenticator);

try{

//根据session创建一个邮件消息

MessagemailMessage=newMimeMessage(sendMailSession);

//创建邮件发送者地址

Addressfrom=newInternetAddress(mailInfo.getFromAddress());

//设置邮件消息的发送者

mailMessage.setFrom(from);

//创建邮件的接收者地址,并设置到邮件消息中

Addressto=newInternetAddress(mailInfo.getToAddress());

//Message.RecipientType.TO属性表示接收者的类型为TO

mailMessage.setRecipient(Message.RecipientType.TO,to);

//设置邮件消息的主题

mailMessage.setSubject(mailInfo.getSubject());

//设置邮件消息发送的时间

mailMessage.setSentDate(newDate());

//MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象

MultipartmainPart=newMimeMultipart();

//创建一个包含HTML内容的MimeBodyPart

BodyParthtml=newMimeBodyPart();

//设置HTML内容

html.setContent(mailInfo.getContent(),"text/html;charset=utf-8");

mainPart.addBodyPart(html);

//设置信件的附件(用本地上的文件作为附件)

//html=newMimeBodyPart();

//FileDataSourcefds=newFileDataSource("D:\\...javamail.doc");

//DataHandlerdh=newDataHandler(fds);

//html.setFileName("javamail.doc");

//html.setDataHandler(dh);

//mainPart.addBodyPart(html);

//将MiniMultipart对象设置为邮件内容

mailMessage.setContent(mainPart);

mailMessage.saveChanges();

//发送邮件

Transport.send(mailMessage);

returntrue;

}catch(MessagingExceptionex){

ex.printStackTrace();

}

returnfalse;

}

}

测试发送类,作者实体测试时使用的是网易中的个性化域名邮箱@blog-,并成功的发送邮件:packagecom.blog.test;

importcom.blog.test.mail.MailSenderInfo;

importcom.blog.test.mail.SimpleMailSender;

publicclassTestSendEmail{//163邮箱

publicstaticvoidmain(String[]args){

//这个类主要是设置邮件

MailSenderInfomailInfo=newMailSenderInfo();

mailInfo.setMailServerHost("smtp.");//邮箱服务器名,不要改变

mailInfo.setMailServerPort("25");//端口,不是ssl发送邮件,就不要该这个端口

mailInfo.setValidate(true);

mailInfo.setUserName("***@blog-");//实际发送者

mailInfo.setPassword("****");//您的邮箱密码

mailInfo.setFromAddress("****@blog-");//设置发送人邮箱地址

mailInfo.setToAddress("****@");//设置接受者邮箱地址

mailInfo.setSubject("系统邮件-找回密码");

mailInfo.setContent("

您的邮箱密码为:

");

//这个类主要来发送邮件

SimpleMailSendersms=newSimpleMailSender();

sms.sendTextMail(mailInfo);//发送文体格式

sms.sendHtmlMail(mailInfo);//发送html格式

}

}

通过以上代码的完善,成功的解决了以前我的前一篇文章只能发送126邮箱邮件的问题,这端代码能够实现发送163企业邮箱、腾讯企业邮箱、腾讯邮箱等邮箱的邮件。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。