【图灵干货】Java高级教程第六节:Java 发送邮件

发布时间:2021-11-01 16:30:42
Java 发送邮件

Java发邮件。
使用Java应用程序发送E-mail非常简单,但首先,您应该在机器上安装JavamailAPI和JavaactivationFramework。
您可以从Java网站下载最新版本的JavaMail,打开网页右侧的Downloads链接,点击下载。
您可以从Java网站下载.1.1)可以从Java网站下载。
您还可以使用本网站提供的下载链接:
JavaMailmail.jar1.4.5。
activation.jarJaf(版本1.1.1)。
下载并解压缩这些文件,在新创建的顶层目录中,你会发现这两个应用程序的一些jar文件。您需要在CLASPATH中添加mail.jar和activation.jar文件。
若使用QQSMTP服务器等第三方邮件服务器,可查看文章底部用户认证的完整实例。
2,发送一份简单的电子邮件。
这里有个简单的E-mail示例。假定本地主机已连接到网络。
SendEmail.java文件代码:
//文件名SendEmail.java。
importjava.util.*;
importjavax.mail.*;
importjavax.mail.internet.*;
importjavax.activation.*;
公共类邮件发送{
publicstaticvoidmain(String[]args){
//收件人电子信箱="abcd@gmail.com";
//发送方电子邮箱Stringfrom="web@gmail.com";
//指定发送消息的主机是localhostStringhost="localhost";
//获取系统属性属性属性=System.getProperties();
//设置邮件服务器properties.setProperty("mail.smtp.host",host);
/获取默认session对象Sessionsession=Session.getDefaultInstance(properties);
try{
//创建MimeMessage对象MimeMessagemessage=newMimeMessage(session);
//SetFrom:头标题字段message.setFrom(newInternetAddress(from));
//SetTo:头标题字段message.addRecipient(Message.RecipientType.TO,newInternetAddress);
//SetSubject:头标题字段message.setS主题ct("ThisistheSubjectLine!"
);
//设置消息体message.settext("Thisisactualmessage");
//发送消息Transport.send(message);
System.out.println("Sentmessagesuccessfully...");
}
(MessagingExceptionmex){mex.printStackTrace();
}}}
汇编和运行此程序以发送一个简单的E-mail:
$javaSendEmail
详细信息描述fully...
若要向多个接收者发送e-mail,请使用以下方法指定多个接收者ID:
voidaddRecipients(Message.RecipientTypetype,Address[]addresses)throwsMessagingException。
对这些参数的说明如下:
type:要设置为TO、CC或BCC,CC在这里代表抄送,BCC代表秘密抄送。例:Message.RecipientType.TO。
addresses:这是一个电子ID阵列。您需要使用InternetAddress方法来指定电子邮件ID。
3,发送一个HTMLE-mail。
这里有个发送HTMLE-mail的示例。假定本地主机已连接到网络。
类似于前面的示例,只是要使用setContent()方法设置内容,以通过"text/html"第二个参数,指定要发送的HTML内容。
SendHTMLEmail.java文件代码:
//文件名称HTMLEmail.javaimportjava.util.*;
importjavax.mail.*;
importjavax.mail.internet.*;
importjavax.activation.*;
公共类发送HTMLEmail{
publicstaticvoidmain(String[]args){
//收件人电子信箱="abcd@gmail.com";
//发送方电子邮箱Stringfrom="web@gmail.com";
//指定发送消息的主机是localhostStringhost="localhost";
//获取系统属性属性属性=System.getProperties();
//设置邮件服务器properties.setProperty("mail.smtp.host",host);
//获取默认会话对象。
Sessionsession=Session.getDefaultInstance(properties);
try{
//创建MimeMessage物件。消息消息=newMimeMessage(session);
//SetFrom:头标题字段message.setFrom(newInternetAddress(from));
//SetTo:头标题字段message.addRecipient(Message.RecipientType.TO,newInternetAddress);
//SetSubject:头字段message.setS主题ct("ThisistheSubjectLine!"
);
//发送HTML消息,可以插入html标签message.setContent("
Thisisactualmessage。
","text/html");
//发送消息Transport.send(message);
System.out.println("Sentmessagesuccessfully...");
}
catch(消息扩展){
mex.printStackTrace();
}}}
编写和运行这个程序以发送HTMLe-mail:
$javaSendHTMLEmail。
详细信息描述fully...
4、用电子邮件发送附件。
这里有个用E-mail发送附件的例子。假定本地主机已连接到网络。
SendFileEmail.java文件代码:
//文件名SendFilemail.javaimportjava.util.*;
importjavax.mail.*
importjavax.mail.internet.*;
importjavax.activation.*;
publicclassssendFileemail{publiclassssssendfilemail{
(String[]args){publicstaticvoidmain{
//收件人电子邮件Stringto=“abcd@gmail.com”;
//发件人电子邮件Stringfrom=“web@gmail.com”;
//指定发送邮件的主机为localhostStringhost=“localhost”;
//获取系统属性Properties=System.getProperties();
//设置邮件服务器properties.setproperty(“mail.smtp.host”,host);
//获取默认Session对象。
Sessionsion=Session.getdefaultinstance(properties);
try{
//创建默认的MimeMessage对象。
MimeMessage=newMimeMessage(session);
//SetFrom:头部头部字段message.setFrom(newinternetadress);
//setto:头部头部字段message.addrecipient(message.recipienttype.to,newinternetadress(to));
//SetSubject:头字段message.setSubject(“ThisistheSubjectLine!
);
//创建消息部分BodyPartmesageBodyPart=newMimeBodyPart();
//消息messagebodyPart.settext(“thisismessagebody”);
//创建多重消息Multipartmultipart=newmimeMultipart();
//设置文本消息部分multipart.addBodyPart(messageBodyPart);
//附件部分messageBodyPart=newMimeBodyPart();
Stringfilename=“file.txt”;
DataSource=newFileDataSource(filename);
messageBodyPart.setdatahandler(source);
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
//发送完整消息message.setContent(multipart);
//发送消息Transport.send(message);
System.out.println(“Sentmessagessucessfully..”);
}
(Messagingexceptionmex){catch
mex.printStackTrace();
}}}
编译并运行您的程序发送附件邮件。
$javaSendFilemail。
Sentmessagesucessfully..
五、用户认证部分。
如果您需要向电子邮件服务器提供用户名和密码,以达到用户认证的目的,您可以通过以下设置完成:
props.put(“mail.smtp.auth”,“true”);props.setproperty(“mail.user”,“myuser”);props.setproperty(“mail.password”,“mypwd”);
e-mail的其他发送机制与上述机制一致。
需要用户名密码验证邮件发送实例:
以QQ邮件服务器为例,您需要在登录QQ邮箱后台在“设置”=”账号中打开POP3/SMTP服务,如下图所示:
以QQ邮件服务器为例,您需要在登录QQ邮箱后台在“设置”=”账号中打开POP3/SMTP服务,
QQ邮箱通过生成授权码来设置密码:
QQ邮箱通过生成授权码来设置密码。
Java代码如下:
Sendemail2.java文件代码:
//需要用户名密码邮件发送实例。
//文件名Sendemail2.java。
//本例以QQ邮箱为例,您需要在QQ后台设置。
importjava.util.Properties;
importjavax.mail.Authenticator;
importjavax.mail.message;
importjavax.mail.messagingexception;
importjavax.mail.PasswordAuthentication;
importjavax.mail.Session;
importjavax.mail.transport;
importjavax.mail.internet.internetAddress;
importjavax.mail.internet.mimemessage;
publiclassssendemail2{publiclasssssendemail2{publiclassssssendendemail2
(String[]args){publicstaticvoidmain{
//收件人电子邮件Stringto=“xx@qq.com”;
//发件人电子邮件Stringfrom=“xx@qq.com”;
//指定发送邮件的主机是smtp.qq.comstringhost=“smtp.qq.com”;
//QQ邮件服务器//获取系统属性Properties=System.getProperties();
//设置邮件服务器properties.setproperty(“mail.smtp.host”,host);
properties.put(“mail.smtp.auth”,“true”);
//获取默认session对象sesion=session.getdefaultinstance(properties,newauthenticator(){
()()()()()()()()()()()
returnewpasswordauthentication(“xxx@qq.com”,“qq邮箱授权码”);

//发件人邮件用户名、授权码

} });

try{

// 创建默认的 MimeMessage 对象 MimeMessage message = new MimeMessage(session);

// Set From: 头部头字段 message.setFrom(new InternetAddress(from));

// Set To: 头部头字段 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

// Set Subject: 头部头字段 message.setSubject("This is the Subject Line!");

// 设置消息体 message.setText("This is actual message");

// 发送消息 Transport.send(message);

System.out.println("Sent message successfully....from runoob.com");

}

catch (MessagingException mex) {

mex.printStackTrace();

} } }
下一章节我们将介绍Java高级教程第七节:Java 多线程编程

图灵学院成立于2017年7月15日,现阶段提供 计算机基础原理、JavaSE核心、Java后端、 面试必备算法、python核心编程、数据分析、web 开发题、人工智能等专题课程,为想学习Python的学员提供优质的培训服务,帮助学员掌握更加全面的技能,是计算机人员职场中提职加薪的首选。
免费java架构师视频学习地址:免费视频

上一篇 Python中常见的配置文件写法
下一篇 【图灵干货】Java高级教程第七节:Java 多线程编程