完整的java mail例子.包括main测试方法。
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.*;
import java.net.URL;
import javax.mail.internet.*;
public class MailManagerImpl {
private String smtpAddr;
private String mailUser;
private String passwd;
public MailManagerImpl() {
}
public MailManagerImpl(String smtpAddr, String mailUser, String passwd) {
this.smtpAddr = smtpAddr;
this.mailUser = mailUser;
this.passwd = passwd;
}
public void sendMailWithoutProxyServer(String fromAddr, String [] recipientsAddr,
String mailSubject, String htmlContent, String textContent
) throws Exception {
Properties props = new Properties();
Session sendMailSession;
Transport transport = null;
InternetAddress [] mailDress;
Message newMessage ;
if (fromAddr == null || fromAddr.equals(""))
throw new InvalidMailAddressException("fromAddr is null");
if (recipientsAddr != null) {
mailDress = new InternetAddress[recipientsAddr.length];
for (int i = 0; i < recipientsAddr.length; i++) {
mailDress[i] = new InternetAddress(recipientsAddr[i]);
}
}
else
throw new InvalidMailAddressException("toAddr is null");
try {
// System.getProperties().put( "proxySet", "true" );
// System.getProperties().put( "proxyHost", "10.168.171.1" );
// System.getProperties().put( "proxyPort", "80" );
sendMailSession = Session.getInstance(props, null);
sendMailSession.setDebug(true); //是否在控制台显示debug信息
newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(fromAddr));
newMessage.setRecipients(Message.RecipientType.TO, mailDress);
newMessage.setSubject(mailSubject);
MimeMultipart multipart=new MimeMultipart();
//BodyPart msgBodyPart=new MimeBodyPart();
MimeBodyPart text = new MimeBodyPart();
MimeBodyPart html = new MimeBodyPart();
if( htmlContent!=null && htmlContent.length()>0 ) {
html.setContent(htmlContent,"text/html; charset=UTF-8");
multipart.addBodyPart(html);
}
if( textContent!=null && textContent.length()>0 ) {
text.setText(textContent);
multipart.addBodyPart(text);
}
//msgBodyPart.setContent(htmlContent,"text/html; charset=UTF-8");
BodyPart embedImage=new MimeBodyPart();
//multipart.addBodyPart(msgBodyPart);
newMessage.setContent(multipart);
newMessage.setSentDate(new Date());
newMessage.saveChanges();
transport = sendMailSession.getTransport("smtp");
transport.connect(this.getSmtpAddr(), this.getMailUser(), this.getPasswd());
transport.sendMessage(newMessage, newMessage.getAllRecipients());
}
catch (Exception e) {
throw e;
}
finally {
if (transport != null)
transport.close();
}
}
public void sendMailWithoutProxyServer(String fromAddr, String [] recipientsAddr,
String mailSubject, String htmlContent, String textContent,
String mailcode
) throws Exception {
Properties props = new Properties();
Session sendMailSession;
Transport transport = null;
InternetAddress [] mailDress;
Message newMessage ;
if (fromAddr == null || fromAddr.equals(""))
throw new InvalidMailAddressException("fromAddr is null");
if (recipientsAddr != null) {
mailDress = new InternetAddress[recipientsAddr.length];
for (int i = 0; i < recipientsAddr.length; i++) {
mailDress[i] = new InternetAddress(recipientsAddr[i]);
}
}
else
throw new InvalidMailAddressException("toAddr is null");
try {
// System.getProperties().put( "proxySet", "true" );
// System.getProperties().put( "proxyHost", "10.168.171.1" );
// System.getProperties().put( "proxyPort", "80" );
sendMailSession = Session.getInstance(props, null);
sendMailSession.setDebug(true); //是否在控制台显示debug信息
newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(fromAddr));
newMessage.setRecipients(Message.RecipientType.TO, mailDress);
newMessage.setSubject(mailSubject);
MimeMultipart multipart=new MimeMultipart();
//BodyPart msgBodyPart=new MimeBodyPart();
MimeBodyPart text = new MimeBodyPart();
MimeBodyPart html = new MimeBodyPart();
if( htmlContent!=null && htmlContent.length()>0 ) {
if (mailcode.equals("cn")){
html.setContent(htmlContent,"text/html; charset=GBK");
}else{
html.setContent(htmlContent,"text/html; charset=UTF-8");
}
multipart.addBodyPart(html);
}
if( textContent!=null && textContent.length()>0 ) {
text.setText(textContent);
multipart.addBodyPart(text);
}
//msgBodyPart.setContent(htmlContent,"text/html; charset=UTF-8");
BodyPart embedImage=new MimeBodyPart();
//multipart.addBodyPart(msgBodyPart);
newMessage.setContent(multipart);
newMessage.setSentDate(new Date());
newMessage.saveChanges();
transport = sendMailSession.getTransport("smtp");
transport.connect(this.getSmtpAddr(), this.getMailUser(), this.getPasswd());
transport.sendMessage(newMessage, newMessage.getAllRecipients());
}
catch (Exception e) {
throw e;
}
finally {
if (transport != null)
transport.close();
}
}
public String getMailUser() {
return mailUser;
}
public String getPasswd() {
return passwd;
}
public String getSmtpAddr() {
return smtpAddr;
}
public void setSmtpAddr(String smtpAddr) {
this.smtpAddr = smtpAddr;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public void setMailUser(String mailUser) {
this.mailUser = mailUser;
}
public static void main(String args[]) throws Exception {
MailManagerImpl mail = new MailManagerImpl();
mail.setSmtpAddr("10.168.171.177");
mail.setMailUser("wn");
mail.setPasswd("password");
String fromAddr = "wn@domain";
//String fromAddr=null;
String [] toAddr = {"wn@domain"};
String subject = "testwn?";
//String content = "你怎么老不给我回信呢? 我盼望着... ...";
StringBuffer content = new StringBuffer();
/*content.append(" <font size=6><b>your sale order </b></font>");
content.append("<table border=1 width=100%>");
content.append("<tr><td width=33%>订单号</td>");
content.append("<td width=33%>商品名</td>");
content.append("<td width=34%>数量</td>");
content.append("</tr><tr>");
content.append("<td width=33%>10000000</td>");
content.append("<td width=33%>Dell笔记本电脑</td>");
content.append("<td width=34%>1</td></tr>");
content.append("</table>");*/
content.append("<H1>what is your name?</H1>");
try {
mail.sendMailWithoutProxyServer(fromAddr, toAddr, subject, content.toString(), "dddd","en");
}catch(InvalidMailAddressException ex) {
System.out.println("aaaaa:"+ex);
}catch(Exception e) {
System.out.println(e);
}
}
}
分享到:
相关推荐
创建JavaMail工具类时,可以考虑将常见的邮件操作封装为静态方法,如`sendEmail(String from, String to, String subject, String body)`,这样方便其他模块调用。 12. **测试和调试**: 开发完成后,应进行充分...
Java Mail API 提供了丰富的类和接口,使得开发者能够方便地执行各种邮件操作,包括创建、发送、接收和管理邮件。它支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和IMAP(因特网消息...
2. **Message 类和Folder接口**:`javax.mail.Message` 是邮件对象的抽象,它封装了邮件的所有信息,包括主题、正文、附件等。`javax.mail.Folder` 接口代表邮件箱,提供了邮件的存取操作。 3. **Session 和 Store*...
Header 类则封装了邮件头的所有信息,如 Subject、Date 等。 Java Mail 1.6.2 版本可能引入了新的特性、改进或修复了已知的问题。例如,可能提高了与现代邮件服务器的兼容性,增强了 SSL/TLS 支持,或者优化了性能...
`MimeMessage`用于创建和管理邮件消息,而`MimeBodyPart`则用于封装邮件的内容,包括文本、图片、文件等。 以下是一个简单的步骤概述: 1. **配置SMTP服务器信息**:在发送邮件前,你需要设置SMTP服务器的主机名、...
通过下载的"JavaMail"源码,你可以更深入地理解这些概念,看到实际的类和方法是如何工作的,从而帮助你在项目中更灵活地应用Java Mail API。这个源码可以帮助你解决邮件发送过程中可能遇到的问题,例如处理异常、...
这个库是对JavaMail API的一个方便的封装,简化了通过Java程序发送电子邮件的过程。在JavaMail中,配置和使用邮件服务可能相对复杂,而Apache Commons Mail则通过提供预定义的邮件实现和简单易用的接口来解决了这个...
Java 核心封装,原生ORM、LOG格式化、自定义Excel、Mail等等常用工具 让Java开发者使用起来像python一样,做到直接调用库即可完成一件事。 1、java封装模块 想要将java的开发变的像python一样,让库的封装更彻底一点...
标题提到的"封装java常用工具的类"是一个很好的实践,将常见的功能模块化,方便复用和维护。下面我们将详细探讨这个主题中的多个知识点。 1. **邮件发送**:JavaMail API提供了发送电子邮件的能力。通过javax.mail...
自己封装的mail类可实现邮件发送功能,填到项目中可直接使用,简单好用!
`Multipart`类是`Part`的一个实现,用于封装多个`Part`,形成一个复杂的邮件结构。 在实际开发中,使用JavaMail API发送邮件的基本步骤如下: 1. 创建`Properties`对象并设置服务器相关属性。 2. 创建`Session`...
本教程将详细讲解一个已经封装好的Java邮件发送工具类——`EasyEmailUtil`,它使得邮件发送变得简单易行,无需繁琐的配置,只需一键调用即可完成。 首先,`EasyEmailUtil`类通常会包含以下几个核心功能: 1. **...
这个Java类`SendMail`是基于Java Mail API封装的一个简单邮件发送工具,用于发送包含文本内容和附件的电子邮件。Java Mail API 是一个开源的Java库,它提供了处理邮件服务器交互的能力,包括发送和接收邮件。 首先...
这篇文档将深入讲解Java Mail API的使用,包括核心概念、主要类和接口以及如何构建一个邮件发送的示例。 首先,Java Mail API中的主要组件包括`Session`、`Message`、`Store`和`Transport`。`Session`代表与邮件...
JavaMail API基于MAPI(Messaging Application Programming Interface)规范,它定义了一系列接口和类,用于与邮件服务器交互。主要包括Session、Message、Multipart、Address等核心组件。Session是所有邮件操作的...
它包含了一个Java类,该类封装了发送电子邮件的过程,以及一个名为`mail.jar`的库,这个库可能包含了JavaMail API,是发送邮件所必需的。 JavaMail API是Java平台上用于处理邮件的开源库,它提供了一组API,允许...
在实际应用中,这个类可以接受必要的参数(如收件人地址、邮件主题、正文和附件路径),然后调用相应的Java Mail API方法进行发送。 至于`dao`,在Java应用中,DAO(数据访问对象)层是用来封装数据库操作的。在...
这个JAR文件包含了Java Mail API的核心类库,提供了多种与邮件服务器通信的接口和类。主要组件包括: 1. **Session**:这是Java Mail中的核心组件,代表了与邮件系统的一次会话。开发者可以通过配置Session来设置...
本文将深入解析如何利用Java Mail实现这一需求,包括必要的知识点、代码示例及其实现细节。 ### 一、Java Mail API简介 Java Mail API是Java平台的一个扩展,用于读取和发送电子邮件。它提供了丰富的API来处理各种...
在这个项目中,我们可能会使用`javax.mail`和`javax.mail.internet`这两个包中的类,如`Session`、`Message`、`MimeMessage`、`Transport`等。 2. **Bean封装**: Bean是一种符合JavaBeans规范的简单Java对象,...