专业的JAVA编程教程与资源

网站首页 > java教程 正文

整理关于java发邮件代码的例子供大家参考

temp10 2024-09-14 12:49:56 java教程 13 ℃ 0 评论

电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等。本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。

1电子邮件协议

电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP。其中邮件的创建和发送只需要用到 SMTP协议,所以本文也只会涉及到SMTP协议。SMTP 是 Simple Mail Transfer Protocol 的简称,即简单邮件传输协议。

整理关于java发邮件代码的例子供大家参考

2JavaMail下载

我们平时通过 Java 代码打开一个 http 网页链接时,通常可以使用已经对 http 协议封装好的 HttpURLConnection 类来快速地实现。Java 官方也提供了对电子邮件协议封装的 Java 类库,就是JavaMail,但并没有包含到标准的 JDK 中,需要我们自己去官方下载,这里我从 JavaEE 官方的 Github 仓库下载。

javaMail下载地址:http://blog.csdn.net/xietansheng/article/details/51673073

使用 JavaMail 1.6.0 要求的 JDK 版本必须是 JDK 1.7 以上,如果你本地的jdk是1.6,可以下载下面低于1.6.0的jar

3创建Java project,新建一封简单的电子邮件

首先创建一个 Java 工程,把下载好的 javax.mail.jar 作为类库加入工程。

邮件创建步骤:

  • 创建一个邮件对象(MimeMessage);

  • 设置发件人,收件人;

  • 设置邮件的主题(标题);

  • 设置邮件的正文(内容);

代码实现:

package test;

import java.util.Calendar;

import java.util.Properties;

import javax.mail.Message.RecipientType;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class SendMail {

/**

*

* @param 邮箱服务器

* @param 邮箱服务器账号

* @param 邮箱服务器密码

* @param 要发送的人邮箱

* @param 邮件主题

* @param 邮件内容

* @param 邮件类型

* @throws 邮件异常

*/

@SuppressWarnings("static-access")

public static void sendMessage(String smtpHost, String from,

String fromUserPassword, String to, String subject,

String messageText, String messageType) throws MessagingException {

// 第一步:配置javax.mail.Session对象

System.out.println("为" + smtpHost + "配置mail session对象");

Properties props = new Properties();

props.put("mail.smtp.host", smtpHost);

props.put("mail.smtp.starttls.enable", "true");// 使用 STARTTLS安全连接

props.put("mail.smtp.port", "25"); // google使用465或587端口

props.put("mail.smtp.auth", "true"); // 使用验证

// props.put("mail.debug", "true");

Session mailSession = Session.getDefaultInstance(props,

new MyAuthenticator(from, fromUserPassword));

// 第二步:编写消息

System.out.println("编写消息from——to:" + from + "——" + to);

InternetAddress fromAddress = new InternetAddress(from);

InternetAddress toAddress = new InternetAddress(to);

MimeMessage message = new MimeMessage(mailSession);

message.setFrom(fromAddress);

message.addRecipient(RecipientType.TO, toAddress);

message.setSentDate(Calendar.getInstance().getTime());

message.setSubject(subject);

message.setContent(messageText, messageType);

// 第三步:发送消息

Transport transport = mailSession.getTransport("smtp");

transport.connect(smtpHost, "chaofeng19861126", fromUserPassword);

transport.send(message, message.getRecipients(RecipientType.TO));

System.out.println("message yes");

}

public static void main(String[] args) {

try {

SendMail.sendMessage("mail.miservice.com", "mdssysmail",

"Mitacmds5202", "test@common.com.cn", "测试邮件发送",

"---------------你好,测试邮件发送-----------",

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

} catch (MessagingException e) {

e.printStackTrace();

}

}

}

package test;

import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;

public class MyAuthenticator extends Authenticator {

String userName = "";

String password = "";

public MyAuthenticator() {

}

public MyAuthenticator(String userName, String password) {

this.userName = userName;

this.password = password;

}

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(userName, password);

}

}

4打开邮件,接收一下,看看是否能够收取到刚刚发送的邮件

请大家多多关注我的头条号,谢谢大家

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表