【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

相关文章推荐

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

Java mail使用QQ邮箱发送邮件配置方案java mail配置了QQ邮箱作为服务器发送邮件,结果导致出现503异常:Authentication failed; nested exception...

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

使用 Java mail 发送邮件,采取配置文件相关参数,采用邮件模板发送邮件

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

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

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

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

【干货】使用Java发送各种格式的邮件

测试可用:          有些重复代码没有给注释。类的方法作用自行查看API了解,最后附上源码。         首先使用JavaMail的jar,官网可下载。        公共静...

spring 配置 java mail 发送邮件

配置文件
  • zh921112
  • zh921112
  • 2014年08月06日 10:55
  • 13787

java mail实现Email的发送,完整代码

1、对应用程序配置邮件会话javax.mail.Session保存邮件系统的配置属性和提供用户验证的信息,发送email首先要获取session对象。(1)Session.getInstance(ja...
  • karem
  • karem
  • 2009年10月09日 15:31
  • 59505

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Java Web读取properties配置文件

java action读取src目录下的properties配置文件。 mailServer.properties配置文件如下: mailServerHost = smtp.163.com...

JavaMail JavaMail发送和接收邮件API(详解)

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

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