`
weinan
  • 浏览: 39494 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java发送邮件

阅读更多
需要下载一个Mail.jar包

MailSenderInfo.java

package com.util.mail;
/** *//**   
* 发送邮件需要使用的基本信息 
*author by wangfun
http://www.5a520.cn 小说520  
*/
import java.util.Properties;
public class MailSenderInfo {
// 发送邮件的服务器的IP和端口
 private String mailServerHost; 
 private String mailServerPort = "25"; 
 // 邮件发送者的地址 
 private String fromAddress; 
 // 邮件接收者的地址 
 private String toAddress; 
 // 登陆邮件发送服务器的用户名和密码 
 private String userName; 
 private String password; 
 // 是否需要身份验证 
 private boolean validate = false; 
 // 邮件主题 
 private String subject; 
 // 邮件的文本内容 
 private String content; 
 // 邮件附件的文件名 
 private String[] attachFileNames;
 /** *//**   
   * 获得邮件会话属性   
   */ 
 public Properties getProperties(){ 
    Properties p = new Properties(); 
    p.put("mail.smtp.host", this.mailServerHost); 
    p.put("mail.smtp.port", this.mailServerPort); 
    p.put("mail.smtp.auth", validate ? "true" : "false"); 
    return p; 
 } 
 public String getMailServerHost() { 
  return mailServerHost; 
 } 
 public void setMailServerHost(String mailServerHost) { 
  this.mailServerHost = mailServerHost; 
 }  
 public String getMailServerPort() { 
  return mailServerPort; 
 }  
 public void setMailServerPort(String mailServerPort) { 
  this.mailServerPort = mailServerPort; 
 }  
 public boolean isValidate() { 
  return validate; 
 }  
 public void setValidate(boolean validate) { 
  this.validate = validate; 
 }  
 public String[] getAttachFileNames() { 
  return attachFileNames; 
 }  
 public void setAttachFileNames(String[] fileNames) { 
  this.attachFileNames = fileNames; 
 }  
 public String getFromAddress() { 
  return fromAddress; 
 } 
 public void setFromAddress(String fromAddress) { 
  this.fromAddress = fromAddress; 
 }  
 public String getPassword() { 
  return password; 
 }  
 public void setPassword(String password) { 
  this.password = password; 
 }  
 public String getToAddress() { 
  return toAddress; 
 } 
 public void setToAddress(String toAddress) { 
  this.toAddress = toAddress; 
 } 
 public String getUserName() { 
  return userName; 
 }  
 public void setUserName(String userName) { 
  this.userName = userName; 
 }  
 public String getSubject() { 
  return subject; 
 }  
 public void setSubject(String subject) { 
  this.subject = subject; 
 }  
 public String getContent() { 
  return content; 
 }  
 public void setContent(String textContent) { 
  this.content = textContent; 
 } 
} 




MyAuthenticator.java

package com.util.mail; 
  
import javax.mail.*; 
 
public class MyAuthenticator extends Authenticator{ 
  String userName=null; 
  String password=null; 
    
  public MyAuthenticator(){ 
  } 
  public MyAuthenticator(String username, String password) {  
    this.userName = username;  
    this.password = password;  
  }  
  protected PasswordAuthentication getPasswordAuthentication(){ 
    return new PasswordAuthentication(userName, password); 
  } 
} 





SimpleMailSender.java

 

package com.util.mail; 

import java.util.Date;
import java.util.Properties; 
import javax.mail.Address;
import javax.mail.BodyPart;  
import javax.mail.Message;  
import javax.mail.MessagingException;  
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; 

/** *//** 
* 简单邮件(不带附件的邮件)发送器 
http://www.bt285.cn BT下载
*/
public class SimpleMailSender{
/** *//** 
 * 以文本格式发送邮件 
 * @param mailInfo 待发送的邮件的信息 
 */
public boolean sendTextMail(MailSenderInfo mailInfo) {
// 判断是否需要身份认证 
 MyAuthenticator authenticator = null;
 Properties pro = mailInfo.getProperties(); 
 if (mailInfo.isValidate()) {
// 如果需要身份认证,则创建一个密码验证器 
 authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); 
 } 
 // 根据邮件会话属性和密码验证器构造一个发送邮件的session 
 Session sendMailSession = Session.getDefaultInstance(pro,authenticator);  
 try {  
 // 根据session创建一个邮件消息  
 Message mailMessage = new MimeMessage(sendMailSession);  
 // 创建邮件发送者地址  
 Address from = new InternetAddress(mailInfo.getFromAddress());  
 // 设置邮件消息的发送者  
 mailMessage.setFrom(from);  
 // 创建邮件的接收者地址,并设置到邮件消息中  
 Address to = new InternetAddress(mailInfo.getToAddress());  
 mailMessage.setRecipient(Message.RecipientType.TO,to);  
 // 设置邮件消息的主题  
 mailMessage.setSubject(mailInfo.getSubject());  
 // 设置邮件消息发送的时间  
 mailMessage.setSentDate(new Date());  
 // 设置邮件消息的主要内容  
 String mailContent = mailInfo.getContent();  
 mailMessage.setText(mailContent);  
 // 发送邮件  
 Transport.send(mailMessage); 
 return true;  
 } catch (MessagingException ex) {  
   ex.printStackTrace();  
 }  
 return false;  
  }

/**
* 以HTML格式发送邮件 
* @param mailInfo 待发送的邮件信息 
*/  
  public static boolean sendHtmlMail(MailSenderInfo mailInfo){  
 // 判断是否需要身份认证  
 MyAuthenticator authenticator = null; 
 Properties pro = mailInfo.getProperties(); 
 //如果需要身份认证,则创建一个密码验证器   
 if (mailInfo.isValidate()) {  
 authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); 
 }  
 // 根据邮件会话属性和密码验证器构造一个发送邮件的session  
 Session sendMailSession = Session.getDefaultInstance(pro,authenticator);  
 try {  
 // 根据session创建一个邮件消息  
 Message mailMessage = new MimeMessage(sendMailSession); 
 // 创建邮件发送者地址  
 Address from = new InternetAddress(mailInfo.getFromAddress()); 
 // 设置邮件消息的发送者  
 mailMessage.setFrom(from);
 // 创建邮件的接收者地址,并设置到邮件消息中  
 Address to = new InternetAddress(mailInfo.getToAddress());  
 // Message.RecipientType.TO属性表示接收者的类型为TO  
 mailMessage.setRecipient(Message.RecipientType.TO,to);  
 // 设置邮件消息的主题  
 mailMessage.setSubject(mailInfo.getSubject());  
 // 设置邮件消息发送的时间  
 mailMessage.setSentDate(new Date());  
 // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象  
 Multipart mainPart = new MimeMultipart();  
 // 创建一个包含HTML内容的MimeBodyPart  
 BodyPart html = new MimeBodyPart();  
 // 设置HTML内容  
 html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");  
 mainPart.addBodyPart(html);  
 // 将MiniMultipart对象设置为邮件内容 
 mailMessage.setContent(mainPart); 
 // 发送邮件 
 Transport.send(mailMessage); 
 return true; 
 } catch (MessagingException ex) { 
 ex.printStackTrace(); 
} 
 return false; 
 } 
} 

 

test.java

 

package com.util.mail;

public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//这个类主要是设置邮件   
	 MailSenderInfo mailInfo = new MailSenderInfo();
  mailInfo.setMailServerHost("smtp.163.com");  
  mailInfo.setMailServerPort("25");  
  mailInfo.setValidate(true);  
  mailInfo.setUserName("yanyuanyuan101@163.com");  
  mailInfo.setPassword("100982");//您的邮箱密码  
  mailInfo.setFromAddress("yanyuanyuan101@163.com");  
 // mailInfo.setToAddress("315905059@qq.com");  
  mailInfo.setToAddress("msn.leonard@gmail.com"); 
  mailInfo.setSubject("设置邮箱标题 如http://www.guihua.org 中国桂花网");  
  mailInfo.setContent("设置邮箱内容 如http://www.guihua.org 中国桂花网 是中国最大桂花网站==");  
   //这个类主要来发送邮件   
  SimpleMailSender sms = new SimpleMailSender();
 sms.sendTextMail(mailInfo);//发送文体格式  
 sms.sendHtmlMail(mailInfo);//发送html格式 
	}

}



分享到:
评论
1 楼 Zhang987526341 2012-08-18  
楼主你好,我复制您的代码后,在test类里面运行出现:javax.mail.AuthenticationFailedException: 535 authentication failed 324a9f8d-ed03-4569-9f38-1d785fe903ac 这个错误 是什么原因啊 ,是不是要改什么东西啊

相关推荐

    java发邮件 java发email

    Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...

    java发送邮件工具

    java发送邮件工具类,用于java程序实现邮件的发送功能

    JAVA发送邮件实现,消息格式化

    本文将详细讲解如何使用Java发送邮件,并着重介绍消息格式化的概念及其重要性。 首先,发送邮件的核心类是JavaMail API提供的`javax.mail`包中的`Session`, `Message`, `Transport`等类。为了发送邮件,我们需要...

    javamail"java发送邮件所需要的包

    描述中提到的“java发送邮件所需要的包”即是指JavaMail API,它包含了一系列的类和接口,例如`javax.mail.Session`,它是邮件会话对象,用于配置邮件服务器的连接参数;`javax.mail.Transport`,用于发送邮件;`...

    java发送邮件功能

    Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...

    java发送邮件jar包2个

    java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个java发送邮件jar包2个...

    java发送邮件实例

    Java发送邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释这个过程,包括SMTP(Simple Mail Transfer Protocol)的工作原理、JavaMail API的使用以及可能遇到的问题及其解决...

    java发送邮件的实例

    总的来说,Java发送邮件涉及到了网络通信、邮件协议(如SMTP)、JavaMail API的使用,以及可能的认证机制。理解这些知识点对于实现一个稳定的邮件发送功能至关重要。在实际操作时,确保正确配置邮件服务信息,并对...

    JAVA发送邮件示例代码

    本文将详细讲解如何使用Java发送邮件,包括所需的库、基本概念以及实际示例代码。 首先,JavaMail API是Java平台用于处理邮件服务的核心库。要发送邮件,你需要在项目中引入JavaMail的依赖。如果你使用的是Maven,...

    java实现邮件发送(三种发送方式都有)

    Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户验证和客户服务等方面。在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下...

    java发送邮件所需jar包.zip

    Java发送邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。要实现这个功能,开发者通常需要引入一些特定的库,也就是我们所说的jar包。在"java发送邮件所需jar包.zip"这个压缩文件中,很可能...

    java发送邮件Demo

    本示例“java发送邮件Demo”旨在教你如何利用JavaMail API实现这个功能。JavaMail API是一个开源库,允许开发者通过SMTP(简单邮件传输协议)发送、接收和管理邮件。 首先,确保在项目中引入JavaMail API的相关依赖...

    java 发送邮件sdk

    JavaMail SDK是Java发送邮件的核心工具,通过配置Session,创建并设置Message,以及使用Transport发送邮件,开发者可以轻松地在Java应用中实现邮件功能。同时,JavaMail还提供了丰富的功能,如HTML邮件、附件、抄送...

    java发送邮件完整程序

    Java发送邮件是一个常见的任务,尤其在自动化通知、订阅服务或者数据传输中。在这个"java发送邮件完整程序"中,我们将会探讨如何使用Java语言来构建一个邮件发送功能,包括所需的库、步骤以及关键代码片段。 首先,...

    java发送邮件源码

    本示例主要关注如何使用Java发送邮件,并结合`Mail.jar`库来实现这一功能。`Mail.jar`通常包含了JavaMail API,这是一个用于处理邮件的开源库。 首先,我们需要在项目中引入JavaMail API的相关依赖。如果是在Maven...

    JAVA发送邮件实现

    在Java编程语言中,发送邮件是一项常见的任务,尤其在开发Web应用、自动化通知或系统集成时。...Java发送邮件的功能十分强大,可以根据需求进行各种定制。通过学习和实践,你可以轻松地在Java应用中实现邮件服务功能。

    java发送邮件jar

    Java发送邮件功能主要依赖于两个库,即javax.mail.jar和activation.jar。这两个JAR文件包含了JavaMail API,它是Java平台中用于发送和接收电子邮件的标准API。让我们深入了解一下这两个库及其在Java邮件处理中的作用...

    使用java发送邮件的方法

    使用java发送邮件的方法,直接可以拿来用,最近找了个例子,稍微整理了一下

Global site tag (gtag.js) - Google Analytics