【JavaMail开发总结】配置文件形式--发送邮件程序

原创 2015年08月09日 17:10:43

        在上一篇中简单的实现了一个发送邮件功能的程序,今天用配置文件的方式来实现,大致思路一致,示例代码如下:

package com.javamail.test.demo;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Properties;
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.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class EmailUtil {
 /**
  * 发送邮件
  * @param to 
  *   收信人
  * @param subject
  *   邮件主题
  * @param content
  *   邮件内容
  * @throws IOException
  * @throws AddressException
  * @throws MessagingException
  */
 public static void send_email(String to, String subject, String content)
               throws IOException, AddressException, MessagingException {
     Properties properties = new Properties();
     InputStream resourceAsStream = null;
     try {
         // 获取配置文件
         resourceAsStream = EmailUtil.class.getClassLoader().getResourceAsStream("email.properties");
         properties.load(resourceAsStream);
     } finally {
          if (resourceAsStream != null) {
              resourceAsStream.close();
          }
     }
     // System.err.println("properties:"+properties);
     properties.put("mail.smtp.host", properties.get("mail.smtp.host"));
     properties.put("mail.smtp.port", properties.get("mail.smtp.port"));
     properties.put("mail.smtp.auth", "true");
     Authenticator authenticator = new Email_Authenticator(properties.get(
             "username").toString(), properties.get("password").toString());
     javax.mail.Session sendMailSession = javax.mail.Session
              .getInstance(properties, authenticator);
     MimeMessage mailMessage = new MimeMessage(sendMailSession);
     //设置发信人
     mailMessage.setFrom(new InternetAddress(properties.get("username")
              .toString(),"***"));
     // 设置收信人,Message.RecipientType.TO 收信人,Message.RecipientType.CC抄送人
     mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(
               to,properties.get("username").toString()));
     //主题
     mailMessage.setSubject(subject, "UTF-8");
     //设置邮件发送日期
     mailMessage.setSentDate(new Date());
     // MiniMultipart类是一个容器类
     Multipart mainPart = new MimeMultipart();
     // 创建一个邮件体对象
     BodyPart html = new MimeBodyPart();
     html.setContent(content.trim(), "text/html; charset=utf-8");
     mainPart.addBodyPart(html);
     mailMessage.setContent(mainPart);
     Transport.send(mailMessage);
  }
}
//通过构造函数传入身份验证信息
class Email_Authenticator extends Authenticator {
    String userName = null;
    String password = null;
    public Email_Authenticator() {
    }
    public Email_Authenticator(String username, String password) {
        this.userName = username;
        this.password = password;
    }
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(userName, password);
    }
}



 配置文件如下(一般放在src目录下):

#email Configuration
#need account and password
#author cash
#host
mail.smtp.host=smtp.qq.com
#port
mail.smtp.port=25
#your email account
username=***@qq.com
#your email password
password=***


"mail.smtp.host=smtp.qq.com"指的是用qq.com的smtp服务器,除此之外还有163.com等等

"mail.smtp.port=25"指的是SMTP服务器端口是25

什么时候应该使用Web Service

什么时候应该使用Web Service转载 01-12-02 15:45 2860p 作者不详 (ccidnet 可乐 2001年11月01日)    现在我将列举三种情况,在这三种情况下,你将会发现...
  • cloudred
  • cloudred
  • 2002-05-02 10:21:00
  • 1044

JAVA EMAIL发送邮件 参数可配置,模板可配置

使用 Java mail 发送邮件,采取配置文件相关参数,采用邮件模板发送邮件
  • qq_29689487
  • qq_29689487
  • 2017-03-30 14:31:21
  • 4253

Spring mail 邮件服务及其参数配置(properties文件的读写)

一个Web 系统通常会少不了邮件服务的,比如用于注册,密码找回,订单提醒等应用场景。Spring 封装了一个简单易用的关于邮件发送的工具类JavaMailSenderImpl 。 系统要提供邮件服务...
  • houxuehan
  • houxuehan
  • 2016-08-11 17:24:53
  • 11886

Java mail使用QQ邮箱发送邮件配置方案

Java mail使用QQ邮箱发送邮件配置方案java mail配置了QQ邮箱作为服务器发送邮件,结果导致出现503异常:Authentication failed; nested exception...
  • chwshuang
  • chwshuang
  • 2017-01-11 15:53:25
  • 7208

spring 配置 java mail 发送邮件

配置文件
  • zh921112
  • zh921112
  • 2014-08-06 10:55:27
  • 15649

JavaMail开发配置

mail.jar 下载地址:  http://java.sun.com/products/javamail/downloads/index.html  activation.jar 下载地址:...
  • Kevin_Samuel
  • Kevin_Samuel
  • 2013-03-12 20:23:05
  • 1021

JavaMail与Spring整合

简介javaMail与spring整合完成后,可大大加大邮件发送效率。当服务器一启动,配置文件就已加载。直接保存用户信息时,邮件可直接发送,大大提高了效率。1.引入坐标 ...
  • mrlin6688
  • mrlin6688
  • 2016-12-07 00:44:43
  • 2998

基于JavaMail的Java邮件发送:简单邮件发送

本文链接: http://blog.csdn.net/xietansheng/article/details/51673073 电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮...
  • xietansheng
  • xietansheng
  • 2016-06-14 21:56:35
  • 118395

JavaMail详解

引用自http://blog.sina.com.cn/s/articlelist_1832656582_7_1.html [JavaMail]1 基础 A、简介 JavaMail,顾名思义,提供给开发...
  • perfect2011
  • perfect2011
  • 2014-02-14 11:07:54
  • 45085

JavaMail API细节详细解析大全

一、JavaMail概述:        JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为JavaEE的一部分。      ...
  • sunjn_jz
  • sunjn_jz
  • 2016-04-15 18:00:11
  • 1987
收藏助手
不良信息举报
您举报文章:【JavaMail开发总结】配置文件形式--发送邮件程序
举报原因:
原因补充:

(最多只允许输入30个字)