本文分别测试使用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();
}
}
分享到:
相关推荐
总之,Apache Commons Email为Java开发者提供了一个强大且易于使用的邮件发送工具,通过简单的代码即可实现包括发送验证码在内的各种邮件功能。在实际开发中,结合业务需求进行适当的优化和扩展,可以极大地提升开发...
以上代码示例展示了如何使用Java Mail API发送一封包含文本和附件的电子邮件。确保你的SMTP服务器配置正确,并且允许使用提供的用户名和密码进行身份验证。在实际应用中,你可能需要处理异常,提供更丰富的错误信息...
Apache Commons Mail 是一个Java库,它为发送电子邮件提供了一个简单且强大的API。这个库是对JavaMail API的一个方便的封装,简化了通过Java程序发送电子邮件的过程。在JavaMail中,配置和使用邮件服务可能相对复杂...
在本篇文章中,我们将深入探讨如何使用`activation.jar`、`commons-email-1.4.jar`和`mail.jar`这三个jar包来在Java中发送电子邮件,以及它们各自的作用。 首先,`activation.jar`是JavaBeans Activation Framework...
下面我们将深入探讨如何使用Java来实现邮件的发送,并基于提供的"java发送邮件示例代码"这一标题和描述,结合"java 软件/插件"的标签,详细讲解相关知识。 首先,Java中发送邮件主要依赖于JavaMail API,这是一个...
在上述示例中,我们看到如何使用Java Mail API发送邮件,同时提到了Apache Commons Email库,它提供了一个更高级别的抽象层,简化了邮件的构建和发送过程。 首先,我们需要了解邮件的基本构成,包括收件人、发件人...
在实际开发中,除了直接使用Java Mail API,还可以选择一些成熟的Java邮件发送库,例如Apache Commons Email、Spring Framework的MailSender接口等,它们提供了更友好的API和额外的特性,可以帮助开发者快速实现邮件...
Java发送邮件是软件开发中常见...通过理解这些基本概念和示例代码,你可以开始使用JavaMail API构建自己的邮件发送功能。无论是简单的文本邮件还是复杂的HTML格式邮件,或是带有附件的邮件,JavaMail API都能轻松应对。
本教程将深入探讨如何使用Java实现邮件验证,包括发送邮件和进行邮件验证的过程。 首先,我们需要引入第三方的JavaMail API库,通常我们会使用Apache Commons Net库和JavaMail API来处理邮件相关任务。在Maven项目...
1. **mailapi.jar**:这是JavaMail API的核心库,包含了处理邮件发送的基本类和接口,如`Session`、`Message`、`Transport`等。 2. **imap.jar**:此文件支持IMAP协议,允许用户从邮件服务器接收邮件。 3. **smtp....
总结来说,Java邮件发送涉及到JavaMail API的使用,以及可能的辅助库如Apache Commons Email,它们可以帮助我们方便地构造和发送邮件。在实际开发中,理解这些API的工作原理和用法,结合邮件服务器的配置,就能实现...
1. **JavaMail API**: JavaMail API是Java平台上的一个标准API,它提供了用于发送和接收电子邮件的标准接口和实现。这个API允许开发者创建、发送、读取和管理电子邮件,包括附件、HTML内容、以及SMTP、POP3和IMAP等...
在"java 邮件 mail 源码 事例 demo"这个主题中,我们将深入探讨如何使用JavaMail API发送邮件,并分析提供的资源。 首先,`mail.jar`是JavaMail的核心库,它包含了处理邮件所需的基本类和接口,如`javax.mail....
2. **javax.mail.jar**:这个是JavaMail API的核心库,提供了与邮件服务器交互的接口和类,包括创建、发送和接收邮件。JavaMail API支持多种协议,如SMTP、POP3和IMAP,使得开发者可以方便地在程序中添加邮件功能。 ...
Java发送邮件是Java编程中的一项常见任务,尤其在企业级应用和自动化通知系统中非常普遍。...对于压缩包中的`email-test`文件,这可能是项目的测试类或者示例代码,用于演示如何使用上述库发送邮件。
首先,Java Mail API是Java平台中用于处理邮件的标准化接口,它允许我们创建、发送和接收邮件。为了实现邮件发送,我们需要引入`javax.mail`和`javax.mail.internet`这两个Java Mail API的包。此外,由于JavaMail ...
JavaMail API是Java平台上的标准邮件接口,提供了发送和接收电子邮件的能力。首先,你需要在项目中引入`javax.mail`库。以下是一个简单的JavaMail发送邮件的示例: ```java Properties props = new Properties(); ...
`javamail`是一个强大的Java API,用于处理邮件服务器交互,而`commons-mail`是Apache Commons项目的一部分,提供了一个更简单的接口来发送邮件。 首先,我们需要了解`javamail`的核心概念。它主要涉及`Session`、`...
这个过程涉及到几个关键的技术点,包括Java配置文件的使用、Excel的数据动态生成、以及邮件的发送。接下来,我们将深入探讨这些知识点。 首先,**Java配置文件**通常用来存储应用的配置信息,如数据库连接字符串、...
此外,现代的Java应用可能会使用第三方库如Apache Commons Email或者Spring框架的Email支持,它们在Java Mail API的基础上提供更友好的API,简化邮件发送的流程。 总结一下,Java发送邮件涉及到的主要知识点包括: ...