更新时间:2022-11-18 14:29:17 来源:极悦 浏览1763次
有多种方法可以使用 JavaMail API 发送电子邮件。为此,您必须拥有负责发送邮件的 SMTP 服务器。
您可以使用以下技术之一获取 SMTP 服务器:
安装和使用任何 SMTP 服务器,例如 Postcast 服务器、Apache James 服务器、cmail 服务器等(或)
使用主机提供商提供的 SMTP 服务器,例如我的 SMTP 服务器是 mail.javatpoint.com(或)
使用其他公司提供的 SMTP 服务器,例如 gmail 等。
在这里,我们将学习以上三种使用 javamail API 发送电子邮件的方法。但是我们应该学习从 Java 应用程序发送电子邮件的基本步骤。
使用 JavaMail 发送电子邮件有以下三个步骤。它们如下:
获取存储主机所有信息的会话对象,如主机名、用户名、密码等。
撰写邮件
发送信息
1.获取会话对象
javax.mail.Session类提供了两种获取session对象的方法,Session.getDefaultInstance()方法和Session.getInstance()方法。您可以使用任何方法来获取会话对象。
Session类的方法
方法 | 描述 | |
---|---|---|
1个 | public static Session getDefaultInstance(属性道具) | 返回默认会话。 |
2个 | public static Session getDefaultInstance(Properties props,Authenticator auth) | 返回默认会话。 |
3个 | public static Session getInstance(属性道具) | 返回新会话。 |
4个 | public static Session getInstance(Properties props,Authenticator auth) | 返回新会话。 |
getDefaultInstance() 方法示例
属性 properties= new Properties();
//填写主机名等所有信息
会话 session=Session.getDefaultInstance(properties, null );
getInstance() 方法示例
属性 properties= new Properties();
//填写主机名等所有信息
会话 session=Session.getInstance(properties, null );
2.撰写消息
javax.mail.Message 类提供了编写消息的方法。但它是一个抽象类,所以它的子类 javax.mail.internet.MimeMessage 类最常被使用。
要创建消息,您需要在 MimeMessage 类构造函数中传递会话对象。例如:
MimeMessage 消息 = new MimeMessage(session);
现在消息对象已经创建,但是要在这个对象中存储信息,MimeMessage 类提供了很多方法。让我们看看 MimeMessage 类提供的方法:
方法 | 描述 | |
---|---|---|
1个 | public void setFrom(地址地址) | 用于设置 from 标头字段。 |
2个 | public void addRecipient(Message.RecipientType类型, Address地址) | 用于将给定地址添加到收件人类型。 |
3个 | public void addRecipients(Message.RecipientType 类型,Address[] 地址) | 用于将给定地址添加到收件人类型。 |
4个 | public void setSubject(字符串主题) | 用于设置主题标题字段。 |
5个 | public void setText(字符串文本消息) | 用于使用 text/plain MIME 类型将文本设置为消息内容。 |
6个 | public void setContent(Object msg, String contentType) | 用于使用给定的 MIME 类型将内容设置为消息内容。 |
撰写消息的示例:
MimeMessage 消息 = new MimeMessage(session);
message.setFrom( new InternetAddress( "[email protected]" ));
message.addRecipient(Message.RecipientType.To,
新的 互联网地址(“[email protected]” ));
message.setHeader( "大家好" );
message.setText( "您好,这封邮件是为了通知您..." );
3.发送消息
javax.mail.Transport 类提供发送消息的方法。
Transport类的常用方法
方法 | 描述 | |
---|---|---|
1个 | 公共静态无效发送(消息消息) | 用于发送消息。 |
2个 | public static void send(Message message, Address[] address) | 用于将消息发送到给定的地址。 |
发送消息的示例:
传输。发送(消息);
在这个例子中,我们将学习如何通过机器上安装的 SMTP 服务器发送电子邮件,例如 Postcast 服务器、Apache James 服务器、Cmail 服务器等。如果您想使用主机提供商提供的 SMTP 服务器发送电子邮件,请参阅这个之后的例子。
要使用 JavaMail API 发送电子邮件,您需要加载两个 jar 文件:
邮件.jar
激活.jar
下载这些 jar 文件或到 Oracle 站点下载最新版本。
导入 java.util.*;
导入 javax.mail.*;
导入 javax.mail.internet.*;
导入 javax.activation.*;
公开课 发送邮件
{
public static void main(String [] args){
字符串 = "[email protected]" ; //相应地改变
String from = "[email protected]" ;相应地改变
字符串主机= “本地主机” ;//或IP地址
//获取会话对象
属性 properties = System.getProperties();
properties.setProperty( "mail.smtp.host" , host);
Session session = Session.getDefaultInstance(属性);
//编写消息
尝试{
MimeMessage 消息 = new MimeMessage(session);
message.setFrom( new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject( "平" );
message.setText( "您好,这是发送邮件的例子" );
// 发信息
传输。发送(消息);
System.out.println( "消息发送成功...." );
} catch (MessagingException mex) {mex.printStackTrace();}
}
}
在这个例子中,我们将学习如何通过机器上安装的 SMTP 服务器发送电子邮件,例如 Postcast 服务器、Apache James 服务器、Cmail 服务器等。如果您想使用主机提供商提供的 SMTP 服务器发送电子邮件,请参阅这个之后的例子。
要运行此示例,您需要加载两个 jar 文件。有 4 种方法可以加载 jar 文件。其中一种方法是设置类路径。让我们看看如何运行这个例子:
加载 jar 文件 | c:\> set classpath=mail.jar;activation.jar;.; |
编译源文件 | c:\> javac SendEmail.java |
由......运营 | c:\> java 发送电子邮件 |
如果您使用主机提供商提供的 SMTP 服务器,例如 mail.javatpoint.com,您需要验证用户名和密码。javax.mail.PasswordAuthentication 类用于验证密码。
如果您使用 JavaMail API 发送电子邮件,请加载两个 jar 文件:
邮件.jar
激活.jar
下载这些 jar 文件或到 Oracle 站点下载最新版本。
导入 java.util.Properties;
导入 javax.mail.*;
导入 javax.mail.internet.*;
公共类 SendMailBySite {
public static void main(String[] args) {
String host= "mail.javatpoint.com" ;
final String user= "[email protected]" ; //相应地改变
最终 字符串密码= “xxxxx” ;//相应地改变
字符串= “[email protected]” ;//相应地改变
//获取会话对象
属性 props = new Properties();
props.put( "mail.smtp.host" ,host);
props.put( "mail.smtp.auth" , "true" );
Session session = Session.getDefaultInstance(props,
新的 javax.mail.Authenticator() {
受保护 的 PasswordAuthentication getPasswordAuthentication() {
返回新的 PasswordAuthentication(用户,密码);
}
});
//编写消息
尝试 {
MimeMessage 消息 = new MimeMessage(session);
message.setFrom(新的 互联网地址(用户));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject( "javatpoint" );
message.setText( "这是一个使用 JavaMail API 发送电子邮件的简单程序" );
//发送消息
传输。发送(消息);
System.out.println( "消息发送成功..." );
} catch (MessagingException e) {e.printStackTrace();}
}
}
正如您在上面的示例中看到的,需要对用户标识和密码进行身份验证。如该程序所示,您可以轻松发送电子邮件。相应地更改用户名和密码。让我们看看如何通过简单的技术再次运行它:
加载 jar 文件 | c:\> set classpath=mail.jar;activation.jar;.; |
编译源文件 | c:\> javac SendMailBySite.java |
由......运营 | c:\> java SendMailBySite |
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习