`
编程足球
  • 浏览: 257808 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

javax.mail java 发送邮件的实现

阅读更多
下面有完整可以运行的代码。本人亲自测试,可以运行。附件有所用到的jar包和源码。需要的朋友可以直接下载进行测试和研究,本人也是在网上找到的代码。一起分享下
直接上源码
1. 邮件的基本信息(方便就直接设置为静态了)
下面最好是做为一个javabean
package com.lgf.Email;

import java.util.Date;

public class EmailMessage 
{
	/**
	 * 邮件的信息,可以自己进行设置。
	 * 为了方便直接全部设置为静态
	 */
	
//	收件人邮箱
	public  static String TO = "xxx@xxx.com";   
//	发件人邮箱
	public  static String FROM = "xxx@xxx.com";  
	public  static String FROM_NAME = "xxx"; 
//	 抄送人	
	public  static String CC="xxx@nxxx.com";   	
//	 暗送人
	public  static String BCC="xxx@nxxx.com";   	
//	邮件的类型
	public 	static String Email_Content = "text/plain";
//	邮件标题
	public  static String Email_Subject = "Test Email With JavaMail";   
//	邮件头
	public  static String Email_Header = "This Is Email Header";   	
//	内容
	public  static String Email_Body = "<a href=\"http://www.baidu.com\">This Is Email Body</a>"; 
//	服务器	比如QQ的可以设置为smtp.qq.com
	public  static String Email_Host = "smtp.xxx.com";   		
//	发送时间
	public 	static Date sendDate = new Date(); 	
//	是否需要验证用户名和密码
	public 	static boolean validate = true; 	
}




2. 服务器验证(就是一般登入时候的用户名和密码)

package com.lgf.Email;

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

/**
 * 用户名和密码的验证
 * @author lgf
 *
 */
public class MailAuthenticator extends Authenticator{
	private  String username="xxxxx";   
	private  String password="xxxxx";   
	
	public MailAuthenticator() {
		super();
	}
	
	/**
	 * 设置验证的用户名和密码
	 */
	public MailAuthenticator(String userName , String password) {
		super();
		this.username = userName;
		this.password = password;
	}
	protected PasswordAuthentication getPasswordAuthentication()
	{   
		return new PasswordAuthentication(this.username,this.password);   
	}   
}




[size=large]3. 发送邮件前设置信息和步骤
package com.lgf.Email;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import com.lgf.SendEmail.MailAuthenticator;

public class SendEmail 
{
	
	/**  
	* 发送普通邮件  
	* @throws Exception  
	*/   
	public void doSendNormalMail() 
	{   
//		 获取系统环境  
		Properties prop = new Properties();  
		Authenticator auth = null;
//		判断发送邮件是否需要验证
		if (EmailMessage.validate) 
		{
//			 邮件服务器认证   用户名和密码
			auth =	new MailAuthenticator();  
		}
//		添加必要的信息
		prop.put("mail.smtp.host", EmailMessage.Email_Host);   
		prop.put("mail.smtp.auth", "true");   
		
//		 设置对话和邮件服务器进行通讯
		Session session = Session.getDefaultInstance(prop, auth);   
//		在控制台显示Debug信息
		session.setDebug(true);
//		设置邮件对象
		Message message = new MimeMessage(session);   
		try 
		{   
//			 设置邮件主题 
			message.setSubject(EmailMessage.Email_Subject);   
//			 设置邮件标题   
			message.setHeader("Header", EmailMessage.Email_Header); 
//			  设置发送时间   
			message.setSentDate(EmailMessage.sendDate);
			
//			 设置发信人地址  和 名字
			Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);   
//			把发件人信息添加到信息中
			message.setFrom(address);   
			
//			设置发件人地址
			Address toAddress = new InternetAddress(EmailMessage.TO); 
//			 设置接收人地址
			message.setRecipient(Message.RecipientType.TO, toAddress);   
		  
//		 	设置多个收件人地址   
//		 	message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));   

//			 设置邮件格式
			message.setContent("Content", EmailMessage.Email_Content); 
//			 设置邮件内容    必须在设置文件格式后面
			message.setText(EmailMessage.Email_Body); 
			
//			保存上面添加的信息
			message.saveChanges();   
//			 发送邮件 
			System.out.println("sendNormalEmail() 开始发送邮件……");   
			Transport.send(message);   
			System.out.println("发送成功!");   
		} catch (Exception e)
		{   
				System.out.println("出错");   
				e.printStackTrace();   
		}   
	}   
	
	/**
	 * 发送HTML格式的邮件
	 */
	public void doSendHtmlMail() 
	{   
//		 获取系统环境  
		Properties prop = new Properties();  

		Authenticator auth = null;
		if (EmailMessage.validate)
		{
//			 邮件服务器认证   用户名和密码
			auth = new MailAuthenticator();
		}
//		添加必要的信息
		prop.put("mail.smtp.host", EmailMessage.Email_Host);   
		prop.put("mail.smtp.auth", "true");   
		
//		 设置对话和邮件服务器进行通讯
		Session session = Session.getDefaultInstance(prop, auth);   
		
//		设置邮件对象
		Message message = new MimeMessage(session);   
		try 
		{   
//			 设置邮件主题 
			message.setSubject(EmailMessage.Email_Subject);   
//			 设置邮件标题   
			message.setHeader("Header", EmailMessage.Email_Header); 
//			  设置发送时间   
			message.setSentDate(EmailMessage.sendDate);
			
//			 设置发信人地址  和 名字
			Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);   
//			把发件人信息添加到信息中
			message.setFrom(address);   
			
//			设置发件人地址
			Address toAddress = new InternetAddress(EmailMessage.TO); 
//			 设置接收人地址
			message.setRecipient(Message.RecipientType.TO, toAddress);   
		  
//		 	设置多个收件人地址   
//		 	message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));   

//			设置发送信息的内容   下面为发送hmml
//			设置邮件格式
			EmailMessage.Email_Content = "text/html; charset=utf-8";
			message.setContent(EmailMessage.Email_Body, EmailMessage.Email_Content); 

//			保存上面添加的信息
			message.saveChanges();   
//			 发送邮件 
			System.out.println("doSendHtmlMail() 开始发送邮件……");   
			Transport.send(message);   
			System.out.println("发送成功!");   
		} catch (Exception e)
		{   
				System.out.println("出错");   
				e.printStackTrace();   
		}   
	}   
	/**
	 * 发送带有附件格式的邮件
	 */
	public void doSendAttachmentMail() 
	{   
//		 获取系统环境  
		Properties prop = new Properties();  

		Authenticator auth = null;
		if (EmailMessage.validate)
		{
//			 邮件服务器认证   用户名和密码
			auth = new MailAuthenticator();
		}
//		添加必要的信息
		prop.put("mail.smtp.host", EmailMessage.Email_Host);   
		prop.put("mail.smtp.auth", "true");   
		
//		 设置对话和邮件服务器进行通讯
		Session session = Session.getDefaultInstance(prop, auth);   
		
//		设置邮件对象
		Message message = new MimeMessage(session);   
		try 
		{   
//			 设置邮件主题 
			message.setSubject(EmailMessage.Email_Subject);   
//			 设置邮件标题   
			message.setHeader("Header", EmailMessage.Email_Header); 
//			  设置发送时间   
			message.setSentDate(EmailMessage.sendDate);
			
//			 设置发信人地址  和 名字
			Address address = new InternetAddress(EmailMessage.FROM, EmailMessage.FROM_NAME);   
//			把发件人信息添加到信息中
			message.setFrom(address);   
			
//			设置发件人地址
			Address toAddress = new InternetAddress(EmailMessage.TO); 
//			 设置接收人地址
			message.setRecipient(Message.RecipientType.TO, toAddress);   
		  
//		 	设置多个收件人地址   
//		 	message.addRecipient(Message.RecipientType.TO,new InternetAddress("xxx@xxx.com"));   
		  
			
//			设置发送信息的内容   下面为发送附件
			message.setContent(EmailMessage.Email_Body, EmailMessage.Email_Content); 
			
			BodyPart messageBodyPart = new MimeBodyPart();   
			messageBodyPart.setText("bodypart");   
			
			Multipart multipart = new MimeMultipart();   
			multipart.addBodyPart(messageBodyPart);   
			
			messageBodyPart = new MimeBodyPart();   
			
//			设置上传的资源
			DataSource source = new FileDataSource("E:\\3.doc");  
//			添加到
			messageBodyPart.setDataHandler(new DataHandler(source));   
//			设置文件名称,记得后缀名
			messageBodyPart.setFileName("test.doc");   
			multipart.addBodyPart(messageBodyPart);  
			
			message.setContent(multipart);   
			
//			保存上面添加的信息
			message.saveChanges();   
//			 发送邮件 
			System.out.println("doSendAttachmentMail() 开始发送邮件……");   
			Transport.send(message);   
			System.out.println("发送成功!");   
		} catch (Exception e)
		{   
				System.out.println("出错");   
				e.printStackTrace();   
		}   
	}   
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
//		new SendEmail().doSendNormalMail();
//		new SendEmail().doSendHtmlMail();
		new SendEmail().doSendAttachmentMail();
	}

}



运行前必须把邮件的基本信息xxx都改为你自己有的邮件
下面附上源码,和jar包。
  • com.zip (3.4 KB)
  • 下载次数: 151
分享到:
评论

相关推荐

    javax.mail-1.4.4.jar

    通过java扩展包javax.mail-1.4.4.jar实现邮件发送功能。 import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart...

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

    基于Maven的javax.mail发送邮件例子程序 pom.xml添加依赖jar: &lt;groupId&gt;javax.mail &lt;artifactId&gt;mail ${javamail.version} &lt;/dependency&gt; &lt;javamail.version&gt;1.4.1&lt;/javamail.version&gt; /* 功能:...

    javax.mail.jar-Java发送邮件API

    javax.mail.jar-Java发送邮件API。Apache Email基于javax.mail做了一个开源项目,参见:http://commons.apache.org/proper/commons-email/

    javax.mail-1.6.0.jar包及移入maven仓库语句

    要使用`javax.mail`发送邮件,你需要配置一个`Properties`对象,设置SMTP服务器信息,然后创建`Session`对象。之后,你可以创建`Message`对象,填充邮件内容,最后通过`Transport`对象发送邮件。例如: ```java ...

    javax.mail-1.6.2_javamailjar1.6.2_javamail-1.6.2_javax.mail_java

    `javax.mail-1.6.2_javamailjar1.6.2_javamail-1.6.2_javax.mail_java` 这个标题暗示了我们正在讨论的是 JavaMail 的 1.6.2 版本,这是一个稳定且广泛使用的版本。 JavaMail API 提供了一套标准的接口,用于与邮件...

    javax.mail.jar下载

    在开发需要发送邮件功能的应用程序时,`javax.mail.jar` 是必不可少的依赖。 标题 "javax.mail.jar下载" 指出,开发者可能遇到了缺少这个库的问题,导致在尝试发送邮件时遇到错误。这通常是因为项目中没有正确地...

    java 基于javax.mail的邮件发送测试工具

    基于javax.mail的邮件发送测试工具

    javax.mail发送邮件

    根据提供的文件信息,我们可以深入探讨...以上就是使用`javax.mail`发送邮件的整个流程。通过这种方式,我们可以轻松地集成邮件发送功能到Java应用中,无论是简单的通知邮件还是复杂的批量邮件发送场景都能应对自如。

    java发送邮件依赖包javax.mail.jar和activation.jar.zip

    Java发送邮件是开发中常见的一项任务,特别是在自动化通知、服务端错误报告或者用户验证等场景。 javax.mail.jar 和 activation.jar 是实现这一功能的关键库文件,它们提供了JavaMail API,允许开发者通过Java代码来...

    采用javax.mail发送邮件,可以发送附件

    采用javax.mail发送邮件,可以发送附件

    javax.mail.1.4.7.jar

    1. **Transport API**:这是发送邮件的主要接口,允许开发者通过SMTP(Simple Mail Transfer Protocol)协议将邮件发送到邮件服务器。Transport类提供了发送已构造好的Message对象的方法。 2. **Store API**:该API...

    JAVA发送邮件demo 代码 及jar包 javax.mail.jar

    Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户注册...以上就是关于“JAVA发送邮件demo 代码 及jar包 javax.mail.jar”的主要知识点。在实际开发中,可以根据具体需求对这些基础知识进行扩展和调整。

    JSP发送邮件实例 利用javax.mail和java.activation这两个包

    在这个实例中,我们将利用`javax.mail`和`java.activation`这两个Java库来实现JSP发送邮件的功能。这两个库是JavaMail API的一部分,提供了丰富的接口和类,使得我们可以在Java程序中方便地处理邮件的发送和接收。 ...

    javax.mail-1.5.2源码

    7. **Protocol Support**: `javax.mail` 支持多种邮件协议,如POP3(Post Office Protocol v3)用于接收邮件,SMTP(Simple Mail Transfer Protocol)用于发送邮件,以及IMAP(Internet Message Access Protocol)...

    javamail1.4.5和javax.mail-1.5.5.jar

    总的来说,`javamail1.4.5` 和 `javax.mail-1.5.5.jar` 提供了强大的邮件处理功能,让Java开发者能够轻松地集成邮件功能到他们的应用程序中。选择哪个版本取决于具体项目的需求,包括兼容性、性能和新特性需求。

    javax.mail发送邮件所需要jar及简单demo

    在这个场景中,我们主要关注`javax.mail`库以及如何通过它来发送邮件。 首先,`javax.mail.jar`是Java Mail API的核心库,它提供了邮件处理的各种接口和类。这个库包含了创建、发送、接收和管理电子邮件所需的所有...

    activation&javax;.mail,java邮箱

    以下是一个简单的Java代码示例,展示了如何使用`javax.mail`发送邮件: ```java import javax.mail.*; import javax.mail.internet.*; public class MailSender { public static void main(String[] args) throws...

    javax.mail.jar

    总结,`javax.mail.jar`是Java应用程序实现邮件功能的关键库,通过Java Mail API,开发者可以轻松地与各种邮件服务器进行交互,实现邮件的发送和接收。理解和掌握这个API,对于开发涉及邮件功能的应用至关重要。在...

    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type

    在Oracle 11.2.0.4中调用 javax.mail 发送邮件时可能会遇到以下错误: ORA-29532: Java call terminated by uncaught Java exception: javax.mail.MessagingException: IOException while sending message; nested ...

Global site tag (gtag.js) - Google Analytics