zoukankan      html  css  js  c++  java
  • java-邮件发送

    最近在项目的注册模块需要发送邮件,因此,简单的调研了下java中的邮件发送。

    一种简单的方式是直接使用JavaMail架包。其Maven依赖如下:

    <dependency>
    <groupId>commons-email</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.1</version>
    </dependency>

    <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.5.0</version>
    </dependency>
    接下来就可以写一个简单的测试函数来测试邮件的发送与接受了。
    public void sendEamil(String from, String password, String sendTo, String msg){

    Email simpleEmail = new SimpleEmail();
    simpleEmail.setCharset("utf8");

    simpleEmail.setHostName("smtp.163.com");
    simpleEmail.setAuthentication(from, password);
    simpleEmail.setSmtpPort(25);

    try {
    simpleEmail.setSubject("测试");
    simpleEmail.setMsg(msg);
    simpleEmail.setFrom(from);
    simpleEmail.addTo(sendTo);
    simpleEmail.send();
    } catch (EmailException e) {
    e.printStackTrace();
    }
    }
    其中,from和password分别是发送者的邮箱名和密码,sendTo是接收者的邮箱地址,msg是发送邮件的内容。我使用的发送邮箱是163邮箱,发送前需要去邮箱中开通smtp服务。

    因为项目使用的Play框架,因此,还尝试了在play框架中发送邮件。

    首先,在application.conf中设置smtp、发送者的邮箱地址和密码等。
    mail.smtp.host=smtp.163.com
    mail.smtp.user=
    mail.smtp.pass=
    mail.smtp.channel=ssl

    接下来调用编写一个发送函数的方法,方法中调用了Play的Email类来发送邮件,邮件的相关属性存储在mail.properties文件中。
    public static   void sendValidateEmail(String email, String username) {
    SimpleEmail sendEmail = new SimpleEmail();
    sendEmail.setCharset("utf8");

    SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日");
    String time =formater.format(new Date());

    Properties prop = new Properties();
    try {
    prop.load(AccountManagement.class.getClassLoader()
    .getResourceAsStream("mail.properties"));
    } catch (IOException e1) {
    e1.printStackTrace();
    }
    try {
    sendEmail.setSubject(prop.getProperty("subject"));
    content = “hello Email”;

    sendEmail.setMsg(content);
    sendEmail.setFrom(prop.getProperty("from"));
    sendEmail.addTo(email);

    Mail.send(sendEmail);
    //System.out.println("121212345667777777");
    } catch (EmailException e) {
    e.printStackTrace();
    }
    }

    但是,很遗憾没有接受到邮件,也没有报错。目前正在找原因,还请熟悉play框架的大牛指导一二。
  • 相关阅读:
    c++构造函数析构函数调用顺序
    c++隐藏实例
    c++子类和父类成员函数重名
    C++虚函数·
    c/c++字符数组和字符串大揭秘
    python 基础回顾 一
    python java scala 单例模式
    推荐一款好用并且免费的markdown软件 Typora
    java 的垃圾回收机制 【转】
    python的垃圾回收机制【转】
  • 原文地址:https://www.cnblogs.com/junjiang3/p/7069370.html
Copyright © 2011-2022 走看看