`
奥义之舞
  • 浏览: 284434 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Mail 发布邮件

    博客分类:
  • Java
 
阅读更多
以下是是发送邮件的JavaMail 实现,加入工程即可用,不过邮箱信息需要更换。。。
package com.mail;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class TestSendMail {
	public static void main(String[] arg) throws Exception {
		sendMailWithAttachement();
	}

	/**
	 * 不需要验证的邮件发送
	 * 
	 * @throws Exception
	 */
	public static void setMessage() throws Exception {
		Properties props = System.getProperties();
		props.put("mail.smtp.host", "mail.infoservice.com.cn"); // 设置smtp的服务器地址:该邮件服务器不需要身份验证
		props.put("mail.smtp.auth", "false"); // 设置smtp服务器要身份验证:缺省设置为false

		Address from = new InternetAddress("chencheng@infoservice.com.cn");
		Address to = new InternetAddress("11@qq.com");

		Session session = Session.getDefaultInstance(props, null);
		Message message = new MimeMessage(session);
		message.setFrom(from);
		message.addRecipient(Message.RecipientType.TO, to);
		message.setText("I love U!!!");
		message.setSubject("Test");

		Transport.send(message);
		System.out.println("邮件发送完毕!");
	}

	/**
	 * 带授权的发送邮件
	 * 
	 * @throws Exception
	 */
	public static void setMessageWithAuthentica() throws Exception {
		Properties props = new Properties();
		props.put("mail.smtp.host", "smtp.126.com"); // 设置smtp的服务器地址是smtp.126.com
		props.put("mail.smtp.auth", "true"); // 设置smtp服务器要身份验证。

		PopupAuthenticator auth = new PopupAuthenticator();
		// Session 类定义了一个基本的邮件会话。通过该会话可让别的工作顺利执行。
		// 在大多数情况下,使用共享会话就足够了,即使为多个用户邮箱处理邮件会话 也是如此。
		// 您可以在通信过程的后面一步添加上用户名和密码的组合,并保持所有 的一切是独立的。
		Session session = Session.getDefaultInstance(props, auth);

		// 发送人地址
		Address addressFrom = new InternetAddress(PopupAuthenticator.username,
				PopupAuthenticator.username);
		// 收件人地址
		Address addressTo = new InternetAddress("111@qq.com");

		// 抄送地址
		// Address addressCopy = new InternetAddress("haocongping@gmail.com",
		// "George Bush");
		// 可以通过将Session对象传递给MimeMessage构造 器的方法来创建消息
		// 一个MimeMessage是一种理解MIME类型和报头(在不同的RFC文档中 均有定义)的消息。
		// 消息的报头被严格限制成只能使用US-ASCII字符,尽管非 ASCII字符可以被编码到某些报头字段中。
		Message message = new MimeMessage(session);
		message.setContent("This is mail content!", "text/plain");// 或者使用message.setText("Hello");更详细的信息请参看后续文章.
		message.setSubject("测试邮件标题");
		message.setFrom(addressFrom);
		message.addRecipient(Message.RecipientType.TO, addressTo);
		// message.addRecipient(Message.RecipientType.CC,addressCopy);
		message.saveChanges();
		// session.setDebug(true);
		
		Transport transport = session.getTransport("smtp"); // 创建连接
		transport.connect("smtp.126.com", PopupAuthenticator.username,
				PopupAuthenticator.pwd);// 连接服务器
		transport.sendMessage(message, message.getAllRecipients()); // 发送信息
		transport.close(); // 关闭连接
		System.out.println("邮件发送完毕!");
	}

	/**
	 * 带附件的邮件发送
	 * 
	 * @throws Exception
	 */
	public static void sendMailWithAttachement() throws Exception {
		Properties props = System.getProperties();
		props.put("mail.smtp.host", "smtp.126.com"); // 设置smtp的服务器地址是smtp.126.com
		props.put("mail.smtp.auth", "true"); // 设置smtp服务器要身份验证。
		PopupAuthenticator auth = new PopupAuthenticator();
		Session session = Session.getInstance(props, auth);
		File filename = new File("D:\\testMail.txt");

		// 发送人地址
		Address from = new InternetAddress(PopupAuthenticator.username,
				PopupAuthenticator.pwd);
		Address to = new InternetAddress("地址@qq.com");
		// Define message
		MimeMessage  message = new MimeMessage(session);
		message.setFrom(from);
		message.addRecipient(Message.RecipientType.TO, to);
		//message.addRecipient(Message.RecipientType.TO, new InternetAddress("第二个地址@qq.com"));
		message.setSubject("Hello 同学","utf-8");
		// Create the message part
		BodyPart messageBodyPart = new MimeBodyPart();
		// Fill the message
		//messageBodyPart.setContent("我勒个去啊","text/html;charSet=utf-8");  
		messageBodyPart.setText("看到这封信,请不要惊讶!这是系统自动发送的邮件,请善误操作!");
		Multipart multipart = new MimeMultipart();
		multipart.addBodyPart(messageBodyPart);
		// Part two is attachment
		messageBodyPart = new MimeBodyPart();
		DataSource source = new FileDataSource(filename);
		messageBodyPart.setDataHandler(new DataHandler(source));
		messageBodyPart.setFileName("download.txt");
		multipart.addBodyPart(messageBodyPart);
		// Put parts in message
		message.setContent(multipart);
		// Send the message
		Transport.send(message);
		System.out.println("成功!");
	}

	public static void recpMail() throws Exception {
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		/*
		 * Properties props = new Properties();
		 * props.put("mail.smtp.host","smtp.sina.com");
		 * props.put("mail.smtp.auth","true"); //
		 * props.put("mail.pop3.socketFactory.fallback", "false"); Session
		 * session = Session.getInstance(props, new PopupAuthenticator());
		 * 
		 * Store store = session.getStore("pop3"); store.connect(); Folder
		 * folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); //
		 * Message[] messages = folder.getMessages();
		 * System.out.println(folder.getMessageCount()); // for (int i=0;i<messages.length;i++)
		 * folder.close(true); store.close();
		 */

		Properties props = new Properties();
		props.put("mail.smtp.host", "mail.infoservice.com.cn");
		props.put("mail.smtp.auth", "false");
		Session session = Session.getInstance(props, new PopupAuthenticator());

		Store store = session.getStore("pop3");
		store.connect("mail.infoservice.com.cn", "zouqingbing", "你的密码");
		Folder folder = store.getFolder("INBOX");
		folder.open(Folder.READ_WRITE);
		System.out.println(folder.getPermanentFlags().getSystemFlags().length);
		Message[] messages = folder.getMessages();
		for (int i = 0; i < messages.length; i++) {
			if (i == 19)
				messages[i].reply(true);

			System.out.println(i + ": 发件人=[" + messages[i].getFrom()[0]
					+ "],标题=[" + messages[i].getSubject() + "]");
			// System.out.println("需要查看邮件内容吗?[Y]---查看;[N]---暂时不看。");
			// String line = reader.readLine();
			// if ("Y".equals(line))
			// System.out.println(messages[i].getContent().toString().getBytes("GB2312"));
		}
		folder.close(true);
		store.close();
	}

}


下面是你要哪个邮箱发送的验证信息类


package com.mail;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class PopupAuthenticator extends Authenticator {
	public static String username = "ss@126.com"; // 邮箱登录帐号
	public static String pwd = "11"; // 登录密码

	public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(username, pwd);
	}
}

最下面 是上面两个类的源码
  • testMail.rar (2.8 KB)
  • 描述: 源码下载
  • 下载次数: 15
分享到:
评论
2 楼 奥义之舞 2011-11-04  
嘿嘿
1 楼 stevenjohn 2011-10-16  
写得不错,实用,(*^__^*) 嘻嘻

相关推荐

    java mail 1.4.5 jar_source 天涯浪子

    1. **Java Mail 1.4.5**:这是 Java Mail 的一个稳定版本,发布于2010年。它包含了一系列用于处理邮件的类和接口,例如 `javax.mail.Session` 代表与邮件服务器的会话,`javax.mail.Store` 用于连接邮件存储,`javax...

    java mail 1.4 源码

    Java Mail 是一个开源的 Java API,它为开发者提供了在 Java 应用程序中发送和接收电子邮件的功能。Java Mail 1.4 源码的分析和理解有助于我们深入探究其内部工作原理,优化邮件处理效率,并能根据需求进行定制化...

    Java Mail群发实例、邮件群发相关、打造自己的EDM系统

    Java Mail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能,包括创建、解析、发送和接收邮件。本教程将深入探讨如何使用Java Mail进行邮件群发,并讲解如何构建一个简单的EDM(Electronic ...

    基于Maven的javax.mail发送邮件例子程序

    2012-2-1 00:14| 发布者: mark| 查看: 236| 评论: 0|原作者: mark|来自: ajava.org 摘要: 下面例子演示怎样用javamail来发送邮件,在测试之前,我们要下载javamail的类包,并添加入你的工程中,如果你的IDE自带...

    张孝祥Java邮件开发详解(最全的文档记录)

    2. **邮件发送过程**:发送邮件时,需先定义`mail from&lt;&gt;`和`rcpt to&lt;&gt;`,这是与服务器交互的关键。邮件包含两个部分:邮件头和邮件内容。邮件头包含from、to、subject、date等信息,邮件内容以"data"开始,以"....

    java Mail

    在描述中提到的"打包发布"可能是指包含了Java Mail项目的源码、库文件或者示例代码,这可以帮助开发者更方便地理解和使用Java Mail。通常,这样的压缩包可能包含以下内容: 1. `README`或文档:解释如何使用Java ...

    java发送邮件所需jar包

    这个版本的JAR包是在2010年发布的,虽然相对较老,但对于基础的SMTP邮件发送仍然足够使用。 2. **spring-context-support-5.0.1.RELEASE.jar**:这个JAR包是Spring框架的一部分,提供了对邮件服务的支持。Spring...

    内部简易邮件收发功能java实现

    描述中的链接指向了一个名为“thousandzhang”的作者在iteye博客上发布的文章,虽然具体内容未提供,但我们可以推测这篇文章可能提供了详细的步骤、代码示例和配置信息,指导读者如何使用Java实现邮件功能。...

    java邮件发送hotmail JDAVMail.0.9.006.zip

    Java邮件发送技术主要涉及到SMTP(Simple Mail Transfer Protocol)协议,这是一种用于在互联网上传输电子邮件的标准。JDAVMail是一个开源的Java库,它允许开发者通过Java程序发送、接收和处理邮件,包括支持像...

    mail-1.4.3.jar

    Java Mail 是一个开源的Java库,它为Java应用程序提供了邮件收发功能。Mail-1.4.3 版本是这个库的一个经典且稳定的发行版,适用于开发人员在构建需要邮件处理功能的应用程序时使用。这个版本在发布时经过了广泛的...

    发送E-mail组件与程序调试.pd

    **JavaMail** 是由 Sun 公司发布的 API,它提供了一种简便的方式来处理电子邮件的发送与接收功能。尽管 JavaMail 并未集成到标准的 Java 开发工具集中,但用户可以在需要时单独下载并使用它。JavaMail 的运行依赖于 ...

    OfficeSystem.rar_JAVA 日程_java 邮箱系统_java mail_日程安排_毕业设计

    辅助办公系统,具有发布公告、站内邮箱、日程安排、日志查看等功能,可以作为毕业设计项目

    基于JAVA电子邮件接收系统的设计与实现开题报告实用文档doc.doc

    据统计,上网用户中有87.6%使用了电子邮件服务,而据 2000 年10月份发布的一份调查报告,国内有24.03%的企业已拥有了自己的电子邮件系统,以Email进行工作交流和与业务伙伴的信息交换。 三、毕业设计...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    基于ApacheJames邮件服务器的收发邮件代码及服务

    Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...

    基于JAVA的邮件客户端的设计和实现毕业设计.doc

    - 相关协议:如SMTP(Simple Mail Transfer Protocol)用于发送邮件,POP3(Post Office Protocol v3)和IMAP(Internet Message Access Protocol)用于接收邮件。 - 功能实现:包括邮件发送、接收、删除、标志、...

    新邮件检查程序V1.0版(含源程序.zip_Inspection mail_新邮件

    在探索这个程序时,开发者或用户需要具备一定的编程知识,特别是对用于邮件处理的库和API的理解,例如Python的`imaplib`或`poplib`模块,或者是Java的`javax.mail`包。此外,理解SMTP(简单邮件传输协议)也可能有助...

    java实现邮箱发送(定时发送)

    首先,我们需要了解JavaMail API,这是一个用于处理电子邮件的开源库,它允许我们在Java程序中创建、发送和接收邮件。要实现邮箱发送,你需要引入JavaMail API的相关依赖,通常包括`javax.mail`和`javax.mail-api`这...

    Android自带的邮件发送代码

    在Android平台上,开发人员可以利用内置的SMTP(Simple Mail Transfer Protocol)支持来实现邮件发送功能。这个过程涉及到多个步骤和关键知识点,包括设置权限、构建邮件消息对象、选择邮件服务提供商以及处理网络...

Global site tag (gtag.js) - Google Analytics