`
namezhou
  • 浏览: 158733 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Java 发送电子邮件

阅读更多

一个采用sun的类库的java发送邮件的demo

因为使用的是Gmail 所以有所不同 Gmail的端口是465 而其他邮箱一般是25 而且Gmail还要用到SSL的一些东西

package send.mail.test;

import java.util.Date;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.net.ssl.SSLSocketFactory;
import java.security.Security;

public class TestSendEmail {

	public static void main(String[] args) {
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		EmailBase base = new EmailBase("smtp.gmail.com", "namezhou#gmail.com",
				"********");
		base.setDebug(true);
		base.setPort(465);
		if (EmailSendManager.sendMail("namezhou#gmail.com", "title", "content",
				base))
			System.err.println("发送成功!");
		else
			System.err.println("发送失败");
	}

}

/**
 * 邮件发送功能实现
 */
class EmailSendManager {

	/**
	 * 发送邮件方法
	 * 
	 * @param toMail
	 *            邮件地址
	 * @param toTitle
	 *            标题名称
	 * @param toContent
	 *            邮件内容
	 * @return boolean 是否成功
	 */
	public static boolean sendMail(String toMail, String toTitle,
			String toContent, EmailBase base) {
		try {
			Properties props = base.getEmailProperties();
			// 根据属性新建一个邮件会话
			Session session = Session.getInstance(props);
			session.setDebug(base.isDebug());
			// 由邮件会话新建一个消息对象
			Message message = new MimeMessage(session);

			// 设置邮件
			InternetAddress from = new InternetAddress(base.getFromAddress());
			// 设置发件人
			message.setFrom(from);
			InternetAddress toWhere = new InternetAddress(toMail);
			// 设置收件人,并设置其接收类型为TO
			message.setRecipient(Message.RecipientType.TO, toWhere);
			// 设置主题
			message.setSubject(toTitle);
			// 设置信件内容
			message.setText(toContent);
			// 设置发信时间
			message.setSentDate(new Date());
			// 发送邮件并存储邮件信息
			message.saveChanges();

			Transport transport = session.getTransport("smtp");
			// 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
			transport.connect(base.getSmtp(), base.getFromAddress(), base
					.getPassword());
			// 发送邮件,其中第二个参数是所有已设好的收件人地址
			transport.sendMessage(message, message.getAllRecipients());
			transport.close();
			return true;
		} catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
	}
}

/**
 * 把发邮件所需的信息封装成一个类
 * 
 * @author Ericzhou
 * 
 */
class EmailBase {
	public EmailBase(String smtp, String from, String password) {
		this.emailProperties = new Properties();
		this.smtp = smtp;
		this.fromAddress = from;
		this.password = password;
		this.emailProperties.put("mail.smtp.host", this.smtp);
		this.emailProperties.put("mail.smtp.port", this.port);
		this.emailProperties.put("mail.smtp.auth", this.auth);
		this.emailProperties.put("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");
		this.emailProperties.put("mail.smtp.socketFactory.fallback", "false");
		this.emailProperties.put("mail.smtp.socketFactory.port", "465");
	}

	private Properties emailProperties;
	private String smtp;
	private int port = 25;
	private String fromAddress;
	private boolean auth = true;
	private String password;
	private boolean debug = false;

	public boolean isDebug() {
		return debug;
	}

	public void setDebug(boolean debug) {
		this.debug = debug;
	}

	public Properties getEmailProperties() {
		return emailProperties;
	}

	public void setEmailProperties(Properties emailProperties) {
		this.emailProperties = emailProperties;
	}

	public String getSmtp() {
		return smtp;
	}

	public void setSmtp(String smtp) {
		this.smtp = smtp;
		this.emailProperties.setProperty("mail.smtp.host", this.smtp);
	}

	public int getPort() {
		return port;
	}

	public void setPort(int port) {
		this.port = port;
		this.emailProperties.setProperty("mail.smtp.port", String
				.valueOf(this.port));
	}

	public String getFromAddress() {
		return fromAddress;
	}

	public void setFromAddress(String fromAddress) {
		this.fromAddress = fromAddress;
	}

	public boolean isAuth() {
		return auth;
	}

	public void setAuth(boolean auth) {
		this.auth = auth;
		this.emailProperties.setProperty("mail.smtp.auth", String
				.valueOf(this.auth));
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
		this.emailProperties.setProperty("", this.password);
	}

}

 

1
0
分享到:
评论

相关推荐

    java发送电子邮件

    Java发送电子邮件是一个常见的任务,尤其在自动化通知、订阅服务或者数据传输等场景中。这个话题主要涉及JavaMail API和JavaBeans Activation Framework (JAF)。JavaMail API是用于处理电子邮件的Java库,而JAF则...

    Java发送outlook邮件

    在IT行业中,使用编程语言发送电子邮件是一项常见的任务,特别是在自动化脚本或系统集成中。Java作为广泛应用的编程语言,提供了多种方法来发送邮件,包括通过Outlook和Notes客户端。在这个场景下,我们将深入探讨...

    java发邮件 java发email

    Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...

    JAVA+发送电子邮件源代码学习

    本资源提供了关于使用Java发送电子邮件的源代码学习资料,让我们深入探讨这个主题。 首先,我们需要理解JavaMail API,它是Java平台上的一个标准API,用于处理邮件通信。JavaMail API包括了多个组件,如`javax.mail...

    JAVA 发送电子邮件

    以下是使用Java发送电子邮件的基本步骤: 1. **建立SMTP连接**:创建一个`Socket`对象并连接到SMTP服务器,通常默认端口为25,SSL/TLS加密时可能为465或587。 2. **身份验证**:与SMTP服务器进行对话,发送登录...

    用java发送电子邮件

    要用Java发送电子邮件,你需要引入以下两个JAR文件: - `javax.mail.jar`:包含JavaMail API的核心类。 - `javax.activation.jar`(或`activation.jar`):包含了数据处理和类型识别的类,是JavaMail API的必要...

    java 发送电子邮件

    本文将详细讲解如何使用Java发送电子邮件,包括所需的库、基本原理和实际代码示例。 首先,JavaMail API是Java平台用于处理邮件服务的核心库,它提供了丰富的接口和类来创建、发送和读取电子邮件。要使用JavaMail,...

    java发送电子邮件代码

    在Java编程语言中,发送电子邮件是一项常见的任务,可以用于通知、数据传输或其他自动化流程。JavaMail API 是一个开源库,它提供了与邮件服务器交互的...只要正确配置和使用,就能轻松地通过Java程序发送电子邮件。

    java发送电子邮件jar包和实例

    在你提到的“java发送电子邮件jar包和实例”中,很可能包含的是JavaMail API的jar文件以及两个示例代码,帮助开发者理解如何使用API来发送邮件。 JavaMail API主要由以下组件组成: 1. javax.mail-api.jar:这是...

    java发送OutLook会议邮件

    JavaMail API是Java中用于处理电子邮件的核心库,它提供了发送、接收邮件等功能。要发送Outlook会议邮件,我们需要引入JavaMail和Java Activation Framework (JAF)的相关依赖。在Maven项目中,可以在pom.xml文件中...

    Java邮件发送.zip

    在这个主题中,我们将深入探讨如何使用Java来发送电子邮件,以及涉及到的关键技术点。 首先,Java中用于发送邮件的主要API是JavaMail API,它是一个开源库,提供了一组接口和类,允许开发者通过SMTP(简单邮件传输...

    java实现邮件发送(三种发送方式都有)

    Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户验证和客户服务等方面。在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下...

    java中email邮件发送接受和处理excel文件(xls)实例

    首先,让我们来看看如何使用Java发送电子邮件。JavaMail API是Java平台上的标准邮件处理库,提供了发送和接收邮件的功能。以下是一个简单的邮件发送示例: 1. 引入JavaMail相关依赖库,如`javax.mail`和`javax.mail...

    java使用javaMail发送邮件

    JavaMail 是一个强大的开源库,它为Java开发者提供了一套完整的API来处理电子邮件的发送和接收。这个项目源文件和包含的jar包是用于演示如何在Java应用中使用JavaMail来实现邮件服务功能的。下面将详细介绍JavaMail...

    java发送邮件功能

    Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...

    使用JAVAMail代发邮件

    使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件协议,例如 SMTP、POP3 和 ...

    Java发送带模版的邮件示例

    在Java编程中,发送带有模板的邮件是一项常见的任务,尤其对于企业级应用来说,通过电子邮件进行通知、报告或客户服务是必不可少的。JavaMail API提供了一种标准的方式来处理邮件的发送,而结合模板技术,我们可以...

    java swing截图发送 电子邮件

    总的来说,Java Swing和JavaMail API结合使用,可以实现用户友好的截图并发送电子邮件的功能。这涉及到了图形用户界面交互、屏幕捕获技术以及网络通信等多个Java编程的核心概念。通过理解并实践这些知识点,开发者...

    java发送邮件实例

    在这个实例中,我们将探讨如何使用Java来发送电子邮件,重点在于SMTP(Simple Mail Transfer Protocol)服务的使用。 首先,我们需要理解JavaMail API,这是一个Java库,允许开发者创建、发送和接收电子邮件。...

Global site tag (gtag.js) - Google Analytics