`
houfeng0923
  • 浏览: 144837 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用java mail api 和 apache mail api 发送email 代码示例

    博客分类:
  • Java
阅读更多

本文分别测试使用java mail api(http://www.oracle.com/technetwork/java/javamail/index.html)和 apache mail api(http://commons.apache.org/email/)发送邮件的功能。(其中要注意 apache mail 依赖于 java mail 。)测试代码如下:

 

import java.net.URL;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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 org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class JavaMail {
  
	
	@Test
	public void defaultSendMail() throws Exception {
		String host = "smtp.sina.com";// "smtp.gmail.com" 
		String port = "25"; //"465"
		Properties props = new Properties();
		props.setProperty("mail.smtp.host", host); 
		props.setProperty("mail.smtp.port", port);
		props.setProperty("mail.smtp.auth", "true");
		props.setProperty("mail.smtp.ssl.enable", "false");//"true"
		props.setProperty("mail.smtp.connectiontimeout", "5000");
		
		final String user = "***@sina.com";  //"***@gmail.com"
		final String pwd = "***";
		Session session = Session.getDefaultInstance(props, new Authenticator() {
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				//登录用户名密码
				return new PasswordAuthentication(user,pwd);
			}
		});
		session.setDebug(true);
		Transport transport = session.getTransport("smtp");//"smtps"
		transport.connect(host,user,pwd); 
		//消息
		MimeMessage message = new MimeMessage(session);
		
		setMailContent(message);//。。。。。。。。。。。。。。。。。。
		
		message.setSubject("邮件标题");
		//消息发送者接收者设置
		//message.setFrom(new InternetAddress(user,"发件人名称")); 
		message.addRecipients(Message.RecipientType.TO,new InternetAddress[]{
				new InternetAddress("to1@163.com","to1昵称"),
				new InternetAddress("to2@163.com","to2昵称")
		});
		message.saveChanges();
		
		//发送
		transport.send(message);
		//Transport.send(message);
		
		transport.close();	
		
	}
	
	//设定邮件内容
	private void setMailContent(MimeMessage message) throws MessagingException {
		//方法一:只有文本邮件
		//message.setContent("邮件内容..", "text/plain");//纯文本内容
		//方法二:添加附件的邮件
		Multipart part = new MimeMultipart();
		
		BodyPart bodypart1 = new MimeBodyPart();
		bodypart1.setText("邮件内容");		
		part.addBodyPart(bodypart1 );
		
		BodyPart bodypart2 = new MimeBodyPart();
		bodypart2.setFileName("fileName");
		bodypart2.setDataHandler(new DataHandler(new FileDataSource("f:\\ok.txt")));
		part.addBodyPart(bodypart2);
		
		message.setContent(part);
	}

	@Test
	public void apacheSendMail() throws Exception {
		SimpleEmail email = new SimpleEmail();
		email.setHostName("smtp.gmail.com");
		email.setSSL(true);
		email.setSmtpPort(465);
//		email.setSslSmtpPort("465");
		email.setTLS(true);//gmail
		email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));
		email.setFrom("h***@gmail.com");
		email.setSubject("TestCommonMail");
		email.setCharset("gbk");
		//文本邮件
		email.setMsg("This is a test mail ... :-)");
		
		email.addTo("**to@qq.com");
		email.send(); 
	}

	@Test
	public void apacheSendHtmlMail() throws Exception {
		HtmlEmail email = new HtmlEmail();
		email.setHostName("smtp.gmail.com");
		email.setSSL(true);
		email.setSmtpPort(465); 
		email.setTLS(true);//gmail
		email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));
		email.setFrom("h***@gmail.com");
		email.addTo("**to@qq.com");
		email.setSubject("TestCommonMail");
		email.setCharset("gbk");
		//html邮件
		String cid = email.embed(new URL("http://www.google.com.tw/intl/en_com/images/srpr/logo1w.png"), "google logo");
		email.setHtmlMsg("<html>The logo - <img src='cid:"+cid+"'></html>");
		
		email.send(); 
	} 
	
	
	@Test
	public void apacheSendAttachMail() throws Exception {
		MultiPartEmail email = new MultiPartEmail();
		email.setHostName("smtp.gmail.com");
		email.setSSL(true);
		email.setSmtpPort(465); 
		email.setTLS(true);//gmail
		email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));
		email.setFrom("h***@gmail.com");
		email.addTo("**to@qq.com");
		email.setSubject("TestCommonMail");
		email.setMsg("This is a test mail ... :-)");
		email.setCharset("gbk");
		
		EmailAttachment attach = new EmailAttachment();
		attach.setName("attachFileName");
		attach.setPath("f:\\ok.txt");
		attach.setDescription(EmailAttachment.ATTACHMENT);
		
		
		email.attach(attach );
		
		email.send(); 
	} 
}
分享到:
评论

相关推荐

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码

    总之,Apache Commons Email为Java开发者提供了一个强大且易于使用的邮件发送工具,通过简单的代码即可实现包括发送验证码在内的各种邮件功能。在实际开发中,结合业务需求进行适当的优化和扩展,可以极大地提升开发...

    java email 发送文档

    以上代码示例展示了如何使用Java Mail API发送一封包含文本和附件的电子邮件。确保你的SMTP服务器配置正确,并且允许使用提供的用户名和密码进行身份验证。在实际应用中,你可能需要处理异常,提供更丰富的错误信息...

    Apache Commons Mail 封装发送邮件类

    Apache Commons Mail 是一个Java库,它为发送电子邮件提供了一个简单且强大的API。这个库是对JavaMail API的一个方便的封装,简化了通过Java程序发送电子邮件的过程。在JavaMail中,配置和使用邮件服务可能相对复杂...

    java发送email依赖jar包

    在本篇文章中,我们将深入探讨如何使用`activation.jar`、`commons-email-1.4.jar`和`mail.jar`这三个jar包来在Java中发送电子邮件,以及它们各自的作用。 首先,`activation.jar`是JavaBeans Activation Framework...

    java发送邮件示例代码

    下面我们将深入探讨如何使用Java来实现邮件的发送,并基于提供的"java发送邮件示例代码"这一标题和描述,结合"java 软件/插件"的标签,详细讲解相关知识。 首先,Java中发送邮件主要依赖于JavaMail API,这是一个...

    Java Mail与Apache Mail发送邮件示例

    在上述示例中,我们看到如何使用Java Mail API发送邮件,同时提到了Apache Commons Email库,它提供了一个更高级别的抽象层,简化了邮件的构建和发送过程。 首先,我们需要了解邮件的基本构成,包括收件人、发件人...

    java邮件发送组件

    在实际开发中,除了直接使用Java Mail API,还可以选择一些成熟的Java邮件发送库,例如Apache Commons Email、Spring Framework的MailSender接口等,它们提供了更友好的API和额外的特性,可以帮助开发者快速实现邮件...

    java发送邮件代码及所需jar

    Java发送邮件是软件开发中常见...通过理解这些基本概念和示例代码,你可以开始使用JavaMail API构建自己的邮件发送功能。无论是简单的文本邮件还是复杂的HTML格式邮件,或是带有附件的邮件,JavaMail API都能轻松应对。

    使用java实现email验证

    本教程将深入探讨如何使用Java实现邮件验证,包括发送邮件和进行邮件验证的过程。 首先,我们需要引入第三方的JavaMail API库,通常我们会使用Apache Commons Net库和JavaMail API来处理邮件相关任务。在Maven项目...

    [总结]Java发送Email

    1. **mailapi.jar**:这是JavaMail API的核心库,包含了处理邮件发送的基本类和接口,如`Session`、`Message`、`Transport`等。 2. **imap.jar**:此文件支持IMAP协议,允许用户从邮件服务器接收邮件。 3. **smtp....

    java 邮件发送测试

    总结来说,Java邮件发送涉及到JavaMail API的使用,以及可能的辅助库如Apache Commons Email,它们可以帮助我们方便地构造和发送邮件。在实际开发中,理解这些API的工作原理和用法,结合邮件服务器的配置,就能实现...

    activation commons-email-1.5 javax.mail

    1. **JavaMail API**: JavaMail API是Java平台上的一个标准API,它提供了用于发送和接收电子邮件的标准接口和实现。这个API允许开发者创建、发送、读取和管理电子邮件,包括附件、HTML内容、以及SMTP、POP3和IMAP等...

    java 邮件 mail 源码 事例 demo

    在"java 邮件 mail 源码 事例 demo"这个主题中,我们将深入探讨如何使用JavaMail API发送邮件,并分析提供的资源。 首先,`mail.jar`是JavaMail的核心库,它包含了处理邮件所需的基本类和接口,如`javax.mail....

    ant发邮件所需的jar(activation.jar+javax.mail.jar+mail.jar+commons-email-1.2.jar)

    2. **javax.mail.jar**:这个是JavaMail API的核心库,提供了与邮件服务器交互的接口和类,包括创建、发送和接收邮件。JavaMail API支持多种协议,如SMTP、POP3和IMAP,使得开发者可以方便地在程序中添加邮件功能。 ...

    java发送邮件

    Java发送邮件是Java编程中的一项常见任务,尤其在企业级应用和自动化通知系统中非常普遍。...对于压缩包中的`email-test`文件,这可能是项目的测试类或者示例代码,用于演示如何使用上述库发送邮件。

    Java发送邮件给多人

    首先,Java Mail API是Java平台中用于处理邮件的标准化接口,它允许我们创建、发送和接收邮件。为了实现邮件发送,我们需要引入`javax.mail`和`javax.mail.internet`这两个Java Mail API的包。此外,由于JavaMail ...

    Java发送邮件的实例(三种方式)实现代码

    JavaMail API是Java平台上的标准邮件接口,提供了发送和接收电子邮件的能力。首先,你需要在项目中引入`javax.mail`库。以下是一个简单的JavaMail发送邮件的示例: ```java Properties props = new Properties(); ...

    使用javamail,commons-mail发送邮件实例

    `javamail`是一个强大的Java API,用于处理邮件服务器交互,而`commons-mail`是Apache Commons项目的一部分,提供了一个更简单的接口来发送邮件。 首先,我们需要了解`javamail`的核心概念。它主要涉及`Session`、`...

    java配置文件动态配置excel导出动态数据并发送email

    这个过程涉及到几个关键的技术点,包括Java配置文件的使用、Excel的数据动态生成、以及邮件的发送。接下来,我们将深入探讨这些知识点。 首先,**Java配置文件**通常用来存储应用的配置信息,如数据库连接字符串、...

    java发邮件

    此外,现代的Java应用可能会使用第三方库如Apache Commons Email或者Spring框架的Email支持,它们在Java Mail API的基础上提供更友好的API,简化邮件发送的流程。 总结一下,Java发送邮件涉及到的主要知识点包括: ...

Global site tag (gtag.js) - Google Analytics