offsettop-mathtype 破解版

gmail smtp
2023年4月4日发(作者:番茄小说免费版下载最新版本)

使⽤发送邮件

作为⼀个Java开发⼯程师,发送邮件是必须掌握,因为很多的⽹站使⽤邮箱来注册,或者使⽤邮箱来重置密码,使⽤⾮常普遍。

1、步骤总结

使⽤包中的api发送邮件,⼤致有5个步骤

1、继承Authenticator类,重写getPasswordAuthentication⽅法。⽤于登录校验。

2、创建⼀个Properties对象,⽤于存放SMTP服务器地址、端⼝号

3、⽤步骤1和2得到的对象创建⼀个Session对象,相当于邮箱登录

4、创建⼀个MimeMessage,设置发件⼈、收件⼈、抄送⼈、主题、内容,添加附件

5、Transport发送邮件

2、关于邮件协议和端⼝

常⽤的电⼦协议协议有SMTP、POP3、IMAP4,它们都⾪属于TCP/IP簇,默认状态下,分别通过TCP端⼝25、110和143建⽴连接。

发送邮件基于SMTP协议。下⾯列出了常⽤的邮件服务器地址和端⼝。(感谢):

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

sinaVIP:

POP3服务器:(端⼝:110)

SMTP服务器:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

126邮箱:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

139邮箱:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

QQ邮箱

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

QQ企业邮箱

POP3服务器地址:(SSL启⽤端⼝:995)

SMTP服务器地址:(SSL启⽤端⼝:587/465)

:

POP3服务器地址:

SMTP服务器地址:

:

POP3服务器地址:(端⼝:995)

SMTP服务器地址:(端⼝:587

HotMail

HotMail

POP3服务器地址:(端⼝:995)

SMTP服务器地址:(端⼝:587)

gmail()

POP3服务器地址:(SSL启⽤端⼝:995)

SMTP服务器地址:(SSL启⽤端⼝:587)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

Foxmail:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:(端⼝:110)

SMTP服务器地址:(端⼝:25)

:

POP3服务器地址:

SMTP服务器地址:

3、发送邮件

接下来上⼲货。

3.1、添加依赖

我的⼯程师Maven⼯程,所以在中直接添加依赖

mail

1.4

junit

junit

4.9

test

3.2、继承Authenticator并重写getPasswordAuthentication⽅法

ticator;

rdAuthentication;

publicclassMyAuthenticatorextendsAuthenticator{

StringuserName=null;

Stringpassword=null;

publicMyAuthenticator(){

}

publicMyAuthenticator(Stringusername,Stringpassword){

me=username;

rd=password;

}

protectedPasswordAuthenticationgetPasswordAuthentication(){

returnnewPasswordAuthentication(userName,password);

}

}

3.3、发送邮件核⼼类Email

;

ties;

dMap;

ndler;

taSource;

pCommandMap;

rt;

e;

art;

n;

ort;

etAddress;

dyPart;

ssage;

ltipart;

ility;

publicclassEmail{

privateStringsmtpHost;//邮件服务器地址

privateStringsendUserName;//发件⼈的⽤户名

privateStringsendUserPass;//发件⼈密码

privateMimeMessagemimeMsg;//邮件对象

privateMultipartmp;//附件添加的组件

privatevoidinit(){

//创建⼀个密码验证器

MyAuthenticatorauthenticator=null;

authenticator=newMyAuthenticator(sendUserName,sendUserPass);

//实例化Properties对象

Propertiesprops=perties();

("",smtpHost);

("","true");//需要⾝份验证

("","true");

//建⽴会话

Sessionsession=aultInstance(props,authenticator);

//置true可以在控制台(console)上看到发送邮件的过程

ug(true);

//⽤session对象来创建并初始化邮件对象

mimeMsg=newMimeMessage(session);

//⽣成附件组件的实例

mp=newMimeMultipart();

}

privateEmail(StringsmtpHost,StringsendUserName,StringsendUserPass,Stringto,Stringcc,StringmailSubject,

StringmailBody,Listattachments){

st=smtpHost;

erName=sendUserName;

erPass=sendUserPass;

init();

setFrom(sendUserName);

setTo(to);

setCC(cc);

setBody(mailBody);

setSubject(mailSubject);

if(attachments!=null){

for(Stringattachment:attachments){

addFileAffix(attachment);

}

}

}

/**

*邮件实体

*

*@paramsmtpHost

*邮件服务器地址

*@paramsendUserName

*发件邮件地址

*@paramsendUserPass

*发件邮箱密码

*@paramto

*收件⼈,多个邮箱地址以半⾓逗号分隔

*@paramcc

*抄送,多个邮箱地址以半⾓逗号分隔

*@parammailSubject

*邮件主题

*@parammailBody

*邮件正⽂

*@paramattachmentPath

*附件路径

*@return

*/

publicstaticEmailentity(StringsmtpHost,StringsendUserName,StringsendUserPass,Stringto,Stringcc,

StringmailSubject,StringmailBody,Listattachments){

returnnewEmail(smtpHost,sendUserName,sendUserPass,to,cc,mailSubject,mailBody,attachments);

}

/**

*设置邮件主题

*

*@parammailSubject

*@return

*/

privatebooleansetSubject(StringmailSubject){

try{

ject(mailSubject);

}catch(Exceptione){

returnfalse;

}

returntrue;

}

/**

*设置邮件内容,并设置其为⽂本格式或HTML⽂件格式,编码⽅式为UTF-8

*

*@parammailBody

*@return

*/

privatebooleansetBody(StringmailBody){

try{

BodyPartbp=newMimeBodyPart();

tent(""+mailBody,

"text/html;charset=UTF-8");

//在组件上添加邮件⽂本

yPart(bp);

}catch(Exceptione){

n("设置邮件正⽂时发⽣错误!"+e);

returnfalse;

}

returntrue;

}

/**

*添加⼀个附件

*

*@paramfilename

*邮件附件的地址,只能是本机地址⽽不能是⽹络地址,否则抛出异常

*@return

*/

publicbooleanaddFileAffix(Stringfilename){

try{

if(filename!=null&&()>0){

BodyPartbp=newMimeBodyPart();

FileDataSourcefileds=newFileDataSource(filename);

aHandler(newDataHandler(fileds));

eName(Text(e(),"utf-8",null));//解决附件名称乱码

yPart(bp);//添加附件

}

}catch(Exceptione){

n("增加邮件附件:"+filename+"发⽣错误!"+e);

returnfalse;

}

returntrue;

}

/**

*设置发件⼈地址

*

*@paramfrom

*发件⼈地址

*@return

*/

privatebooleansetFrom(Stringfrom){

try{

m(newInternetAddress(from));

}catch(Exceptione){

returnfalse;

}

returntrue;

}

/**

*设置收件⼈地址

*

*@paramto收件⼈的地址

*@return

*/

privatebooleansetTo(Stringto){

if(to==null)

returnfalse;

try{

ipients(,(to));

}catch(Exceptione){

returnfalse;

}

returntrue;

}

/**

*设置抄送

*

*@paramcc

*@return

*/

privatebooleansetCC(Stringcc){

if(cc==null){

returnfalse;

}

try{

ipients(,(cc));

}catch(Exceptione){

returnfalse;

}

returntrue;

}

/**

*noobjectDCHforMIMEtypemultipart/mixed报错解决

*/

privatevoidsolveError(){

MailcapCommandMapmc=(MailcapCommandMap)aultCommandMap();

lcap("text/html;;x-java-content-handler=_html");

lcap("text/xml;;x-java-content-handler=_xml");

lcap("text/plain;;x-java-content-handler=_plain");

lcap(

"multipart/*;;x-java-content-handler=art_mixed;x-java-fallback-entry=true");

lcap("message/rfc822;;x-java-content-handler=e_rfc822");

aultCommandMap(mc);

tThread().setContextClassLoader(ssLoader());

}

/**

*发送邮件

*

*@return

*/

publicbooleansend()throwsException{

tent(mp);

anges();

n("正在发送邮件....");

solveError();

(mimeMsg);

n("发送邮件成功!");

returntrue;

}

}

3.4、测试类

;

;

;

publicclassEmailTest{

@Test

publicvoidsendEmail()throwsException{

StringuserName="1658633515@";//发件⼈邮箱

Stringpassword="************";//发件⼈密码,其实不⼀定是邮箱的登录密码,对于QQ邮箱来说是SMTP服务的授权⽂本

StringsmtpHost="";//邮件服务器

Stringto="3527824124@";//收件⼈,多个收件⼈以半⾓逗号分隔

Stringcc="2779653121@";//抄送,多个抄送以半⾓逗号分隔

Stringsubject="这是邮件的主题";//主题

Stringbody="这是邮件的正⽂";//正⽂,可以⽤html格式的哟

Listattachments=("D:安装包测试附件","D:安装包测试附件");//附件的路径,多个附件也不怕

Emailemail=(smtpHost,userName,password,to,cc,subject,body,attachments);

();//发送!

}

}

更多推荐

gmail smtp