发送邮件

应用Java应用程序发送 E-mail 非常简略,然而首先你应该在你的机器上装置 JavaMail API 和Java Activation Framework (JAF) 。

如果你应用第三方邮件服务器如QQ的SMTP服务器,可查看文章底部用户认证残缺的实例。

发送一封简略的 E-mail

上面是一个发送简略E-mail的例子。假如你的本地主机曾经连贯到网络。

SendEmail.java 文件代码:
// 文件名 SendEmail.java

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendEmail
{
public static void main(String [] args)
{

  // 收件人电子邮箱  String to = "abcd@gmail.com";  // 发件人电子邮箱  String from = "web@gmail.com";  // 指定发送邮件的主机为 localhost  String host = "localhost";  // 获取零碎属性  Properties properties = System.getProperties();  // 设置邮件服务器  properties.setProperty("mail.smtp.host", host);  // 获取默认session对象  Session session = Session.getDefaultInstance(properties);  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....");  }catch (MessagingException mex) {     mex.printStackTrace();  }

}
}
编译并运行这个程序来发送一封简略的E-mail:

$ java SendEmail
Sent message successfully....
如果你想发送一封e-mail给多个收件人,那么应用上面的办法来指定多个收件人ID:

void addRecipients(Message.RecipientType type,Address[] addresses)
throws MessagingException
上面是对于参数的形容:

type:要被设置为 TO, CC 或者 BCC,这里 CC 代表抄送、BCC 代表机密抄送。举例:Message.RecipientType.TO

addresses: 这是 email ID 的数组。在指定电子邮件 ID 时,你将须要应用 InternetAddress() 办法。

发送一封 HTML E-mail

上面是一个发送 HTML E-mail 的例子。假如你的本地主机曾经连贯到网络。

和上一个例子很类似,除了咱们要应用 setContent() 办法来通过第二个参数为 "text/html",来设置内容来指定要发送HTML 内容。

SendHTMLEmail.java 文件代码:
// 文件名 SendHTMLEmail.java

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendHTMLEmail
{
public static void main(String [] args)
{

   // 收件人电子邮箱  String to = "abcd@gmail.com";  // 发件人电子邮箱  String from = "web@gmail.com";  // 指定发送邮件的主机为 localhost  String host = "localhost";  // 获取零碎属性  Properties properties = System.getProperties();  // 设置邮件服务器  properties.setProperty("mail.smtp.host", host);  // 获取默认的 Session 对象。  Session session = Session.getDefaultInstance(properties);  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!");     // 发送 HTML 音讯, 能够插入html标签     message.setContent("<h1>This is actual message</h1>",                        "text/html" );     // 发送音讯     Transport.send(message);     System.out.println("Sent message successfully....");  }catch (MessagingException mex) {     mex.printStackTrace();  }

}
}
编译并运行此程序来发送HTML e-mail:

$ java SendHTMLEmail
Sent message successfully....