专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 人工智能

用JavaMail发送邮件(含范例)

发布时间:2011-07-03 09:15:58 文章来源:www.iduyao.cn 采编人员:星星草
用JavaMail发送邮件(含实例)
JavaMail是Sun发布的处理电子邮件的应用程序接口,它预置了一些最常用的邮件传送协议的实现方法,并且提供了很容易的方法去调用它们。JavaMail是Sun发布的应用程序接口,所以目前它还没有被JDK包含。因此你需要从Sun的官方网站上下载到JavaMail类文件包。除此之外还需要Sun的JAF(JavaBeans Activation Framework ),否则JavaMail将不能运行。
        核心JavaMail API 由七个类组成:Session 、Message 、Address 、Authenticator 、Transport 、Store 及 Folder ,它们都来自javax.mail 、即JavaMail API 顶级包。可以用这些类完成大量常见的电子邮件任务,包括发送消息、检索消息、删除消息、认证、回复消息、转发消息、管理附件、处理基于HTML文件格式的消息以及搜索或过滤邮件列表。
       测试邮件发送的源代码:

import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Properties; 
import java.util.Date; 
import javax.mail.*; 
import javax.mail.internet.*; 
/* 
*  测试用JavaMail发送电子邮件 
*/ 
public class SendMail { 
private String from; 
private String to; 
private String smtpServer; 
private String subject; 
private String content; 
private String username; 
private String password; 

/* 
  * 构造函数 
  */ 
public void mail(String smtpServer,String from,String to,String username,String password,String subject,String content) { 
  this.smtpServer = smtpServer; 
  this.from = from; 
  this.to = to; 
  this.username = username; 
  this.password = password; 
  this.subject = subject; 
  this.content = content; 
} 

public String getFrom() { 
  return from; 
} 
public void setFrom(String from) { 
  this.from = from; 
} 
public String getTo() { 
  return to; 
} 
public void setTo(String to) { 
  this.to = to; 
} 
public String getSmtpServer() { 
  return smtpServer; 
} 
public void setSmtpServer(String smtpServer) { 
  this.smtpServer = smtpServer; 
} 
public String getSubject() { 
  return subject; 
} 
public void setSubject(String subject) { 
  this.subject = subject; 
} 
public String getContent() { 
  return content; 
} 
public void setContent(String content) { 
  this.content = content; 
} 
public String getUsername() { 
  return username; 
} 
public void setUsername(String username) { 
  this.username = username; 
} 
public String getPassword() { 
  return password; 
} 
public void setPassword(String password) { 
  this.password = password; 
} 

public void send() { 
  Properties props = System.getProperties(); 
  props.put("mail.smtp.host", smtpServer); 
  props.put("mail.smtp.auth", "true");   
  /* 
   * Session: 邮件会话 
   * 使用Session类提供的getDefaultInstance()静态工厂方法获得一个默认的Session对象 
   */ 
  Session session = Session.getDefaultInstance(props,new PasswordAuthenticator(username, password)); 
  //信息对象 
  Message msg = new MimeMessage(session); 
  try { 
   msg.setFrom(new InternetAddress(from)); 
   msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); 
   msg.setSubject(subject); 
   msg.setText(content); 
   //发送邮件的时间 
   msg.setSentDate(new Date()); 
   //邮件的发送是由Transport来完成的 
   Transport.send(msg); 
  } catch (AddressException e) { 
   e.printStackTrace(); 
  } catch (MessagingException e) { 
   e.printStackTrace(); 
  } 
} 

public static void main(String[] argv) { 
  SendMail sendMail = new SendMail(); 
  //设置SMTP服务器地址    
  sendMail.setSmtpServer("smtp.sina.com"); 
  //发送方的邮件地址 
  sendMail.setFrom("[email=[ft=,2,]zhangxuey@sina.com]zhangxueyi@sina.com[/email]"); 
  //接收方的邮件地址 
  sendMail.setTo("[email=[ft=,2,]623064832@qq.com]623064832@qq.com[/email]"); 
  //发送方的邮件名称 
  sendMail.setUsername("[email=[ft=,2,]zhangxueyi@sina.com]zhangxueyi@sina.com[/email]"); 
  //发送方的邮箱密码(根据情况自己设定) 
  sendMail.setPassword("******"); 
  //邮件的主题 
  sendMail.setSubject("测试"); 
  //邮件的内容 
  sendMail.setContent("测试用JavaMail发送电子邮件!"); 
  sendMail.send(); 
} 
} 
/* 
* 密码验证类 PasswordAuthenticator 
* @param username:邮件地址 
* @param password:密码 
*/ 
class PasswordAuthenticator extends Authenticator { 
private String username; 
private String password; 
public PasswordAuthenticator(String username, String password) { 
  this.username = username; 
  this.password = password; 
}//构造方法 
protected PasswordAuthentication getPasswordAuthentication() { 
  return new PasswordAuthentication(username, password); 
} 
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: