`
vincent_com
  • 浏览: 44394 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类

JavaMail发送邮件篇

 
阅读更多
关于JavaMail的调用,这样的好贴实在太多。这里我整理如下,加上收发邮件的代码。

1.编写邮件,不多说,贴代码:
MailSendInfo.java
public class MailSenderInfo {
	public static void main(String[] args) throws Exception {
	}

	// 发送邮件的服务器的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;
	}
}


SimpleMailSender.java
public class SimpleMailSender  {   
/**  
  * 以文本格式发送邮件  
  * @param mailInfo 待发送的邮件的信息  
  */   
    public static boolean sendTextMail(MailSenderInfo mailInfo) {   
      // 判断是否需要身份认证   
      MailAuthenticator authenticator = null;   
      Properties pro = mailInfo.getProperties();  
      if (mailInfo.isValidate()) {   
      // 如果需要身份认证,则创建一个密码验证器   
        authenticator = new MailAuthenticator(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){   
      // 判断是否需要身份认证   
      MailAuthenticator authenticator = null;  
      Properties pro = mailInfo.getProperties();  
      //如果需要身份认证,则创建一个密码验证器    
      if (mailInfo.isValidate()) {   
        authenticator = new MailAuthenticator(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;   
    }   
}   



MailAuthenticator.java
public class SimpleMailSender  {   
/**  
  * 以文本格式发送邮件  
  * @param mailInfo 待发送的邮件的信息  
  */   
    public static boolean sendTextMail(MailSenderInfo mailInfo) {   
      // 判断是否需要身份认证   
      MailAuthenticator authenticator = null;   
      Properties pro = mailInfo.getProperties();  
      if (mailInfo.isValidate()) {   
      // 如果需要身份认证,则创建一个密码验证器   
        authenticator = new MailAuthenticator(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){   
      // 判断是否需要身份认证   
      MailAuthenticator authenticator = null;  
      Properties pro = mailInfo.getProperties();  
      //如果需要身份认证,则创建一个密码验证器    
      if (mailInfo.isValidate()) {   
        authenticator = new MailAuthenticator(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;   
    }   
}   



PostMail.java --method
/**
	 * as html body
	 * @param subject
	 * @param content
	 * @param toAddr
	 * @return
	 */
	public static boolean postMailAsHtml(String subject,String content,String   toAddr){
		   MailSenderInfo mailInfo = new MailSenderInfo();   //mail self bean
		     mailInfo.setMailServerHost("smtp.163.com");   // smtp ,pop3 or imap
		     mailInfo.setMailServerPort("25");   //mail port
		     mailInfo.setValidate(true);   
		     mailInfo.setUserName("xx@qq.com");   
		     mailInfo.setPassword("**********");//mail password
		     mailInfo.setFromAddress("xx@qq.com");     
		     mailInfo.setToAddress(toAddr);   
		     mailInfo.setSubject(subject);   
		     mailInfo.setContent(content);      
		    boolean flag= SimpleMailSender.sendHtmlMail(mailInfo);//   mail body as html 
		     if(flag){
			    	return true;
			    }
			return false;
	}


你可以完成你的javamail的邮件发送功能了,。
提醒:不要使用你刚刚注册过的邮箱在程序中发邮件,如果你的163邮箱是刚注册不久,那你就不要使用“smtp.163.com”。因为你发不出去。刚注册的邮箱是不会给你这种权限的,也就是你不能通过验证。要使用你经常用的邮箱,而且时间比较长的。

下一篇见 收发邮件的
分享到:
评论

相关推荐

    使用javaMail发送邮件

    在本篇文章中,我们将深入探讨如何使用JavaMail API来实现邮件的发送功能。 首先,我们需要引入JavaMail所需的依赖库。在提供的文件列表中,我们看到有以下jar文件: 1. mail.jar:这是JavaMail的核心库,包含了...

    使用JavaMail实现发送邮件

    不过,需要注意的是,使用JavaMail发送邮件时,必须确保你的SMTP服务器允许第三方应用程序进行授权,并且可能需要开启“不够安全的应用”的权限(对于Gmail而言)。 在提供的压缩包文件`Mail`中,可能包含了一些...

    用JavaMail发送邮件

    本篇文章将深入探讨如何使用JavaMail发送邮件,以及如何结合提供的`mail.jar`库进行实际操作。 首先,发送邮件的基本步骤包括设置邮件服务器配置、创建邮件消息对象、设置邮件属性和头信息,以及最后通过Transport...

    常规JavaMail 邮件发送实用类

    1. `sendEmail(String from, String to, String subject, String body)`: 这个方法用于发送简单的文本邮件,参数分别为发件人、收件人、邮件主题和邮件正文。 2. `sendHtmlEmail(String from, String to, String ...

    javamail发送邮件(转)

    本篇文章将详细探讨JavaMail发送邮件的基本原理及使用方法,以及如何通过`MailTest`示例进行实践。 ### 1. JavaMail基本概念 JavaMail API 包含了多个核心接口和类,如 `Session`、`Message`、`Transport` 和 `...

    利用JavaMail发邮件

    在本篇文章中,我们将深入探讨如何利用JavaMail API发送邮件,以及在实际应用中可能遇到的关键知识点。 首先,JavaMail的核心组件包括`javax.mail`和`javax.mail.internet`这两个包。`javax.mail`包含了处理邮件...

    JavaMail发邮件所需的jar包

    要使用JavaMail发送邮件,你需要遵循以下步骤: 1. **配置Properties**:创建一个Properties对象,设置SMTP服务器的相关属性,如主机名、端口、用户名和密码。对于SSL/TLS加密,还需要设置相应的安全属性。 ```...

    JavaMail实现邮件发送功能,可发送、抄送、密送多人,支持多附件的发送

    本篇将详细介绍如何利用 JavaMail 实现邮件发送,包括发送、抄送、密送多人以及添加多附件。 首先,你需要在项目中引入 JavaMail 的依赖。如果是 Maven 项目,可以在 `pom.xml` 文件中添加如下依赖: ```xml ...

    JAVA-JSP学习系列之JavaMail发邮件

    ### JAVA-JSP学习系列之JavaMail发送邮件 在本文中,我们将深入了解如何使用JavaMail API与JSP(Java Server Pages)结合来实现电子邮件的发送功能。通过本篇的学习,你可以掌握利用JavaMail进行邮件发送的基本步骤...

    javamail实现发送邮件

    在本篇中,我们将深入探讨如何利用 JavaMail 实现发送邮件。 首先,要使用 JavaMail,我们需要引入必要的库。通常,这包括 javax.mail 和 javax.mail.internet 包。这两个包提供了创建、配置和发送邮件所需的所有...

    javamail 发送收取邮件

    根据提供的文件信息,我们可以深入探讨如何使用JavaMail API来发送和接收邮件,特别是通过QQ邮箱服务来进行操作。本文将详细解析文件中提到的...希望本篇文章能帮助大家更好地理解和使用JavaMail API来发送和接收邮件。

    Spring实现JavaMail邮件发送功能

    在本篇文章中,我们将深入探讨如何利用Spring来实现JavaMail邮件发送,以及在实际应用中需要注意的关键点。 首先,我们需要理解JavaMail API的基础概念。JavaMail是一个用于处理邮件的开放源码API,它允许开发者...

    JavaMail 发送简单邮件

    在本篇文章中,我们将深入探讨如何使用JavaMail发送简单的邮件。 首先,你需要在项目中引入JavaMail的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> ...

    javaMail发邮件

    本篇将深入探讨如何使用 JavaMail 发送邮件,以及相关的技术要点。 首先,要使用 JavaMail 发送邮件,你需要在项目中引入其依赖。通常,这可以通过 Maven 或 Gradle 进行管理。对于 Maven,可以在 `pom.xml` 文件中...

    JavaMail的邮件实例

    本篇将深入探讨 JavaMail 的邮件实例,以及如何利用它来创建、发送和接收邮件。 在 JavaMail 中,主要涉及的核心接口和类包括 `Session`、`Message`、`MimeMessage`、`Transport` 和 `Store`。`Session` 是整个邮件...

    javamail发送邮件

    JavaMail 是一个开源库,它提供了在Java应用程序中发送和接收电子邮件的能力。这个库通过SMTP(简单邮件传输协议)和其他相关协议与邮件服务器交互,使得开发者可以方便地集成邮件功能到他们的项目中。本篇文章将...

    jsp+javamail邮件发送代码

    在JSP中使用JavaMail发送邮件的步骤如下: 1. 引入JavaMail所需的依赖:你需要在项目中添加JavaMail的jar包,通常包括`mail.jar`和`activation.jar`。这些可以在JavaMail的官方网站上下载或通过Maven或Gradle等构建...

    javaMail发送和接收邮件

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中发送和接收电子邮件。它提供了丰富的 API,使得开发者可以方便地与各种邮件服务器进行交互,支持 SMTP、POP3 和 IMAP 协议。本篇文章将深入探讨 JavaMail 的...

Global site tag (gtag.js) - Google Analytics