zoukankan      html  css  js  c++  java
  • 简单的java实现发送电子邮件

    这里实现用Java发送电子邮件,可以发送简单文本,或者html,再或者就是带附件了。

    首先就是需要两个包,我用的是apache中commons中的,下载地址http://commons.apache.org/可以去下载。

    需要的两个包为:mail.jar、commons-email.jar;

    下面为发送文本的代码实现:

    View Code
    import org.apache.commons.mail.Email;
    import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.SimpleEmail;

    public class SimpleEmailTest {

    public static void main(String[] args) {
    Email email = new SimpleEmail();
    //smtp.qq.com是腾讯的邮件服务器;各邮箱的都可以查到;这里用QQ吧
    email.setHostName("smtp.qq.com");
    //发送邮件的帐号、密码
    email.setAuthentication("840***413", "123****");
    email.setCharset("UTF-8");
    //是否加密,基本都是true
    email.setTLS(true);
    try {
    //这里是发送方的邮件
    email.setFrom("840***413@qq.com");
    email.setSubject("commons email");
    //这里放的就是要发送的文本内容了
    email.setMsg("这是利用commons包发出的电子邮件");
    //发送目的邮箱
    email.addTo("××××@163.com");
    email.send();
    } catch (EmailException e) {
    e.printStackTrace();
    }
    }
    }

    很简单,发送html的或者带附件的都差不多,下面是发送html的,注意与上面的变化

    View Code
    import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.HtmlEmail;

    public class HtmlEmailTest {

    public static void main(String[] args) {
    HtmlEmail email = new HtmlEmail();//变化1
    email.setHostName("smtp.qq.com");
    email.setAuthentication("840***413", "131*****");
    email.setCharset("UTF-8");
    email.setTLS(true);

    try {
    email.setFrom("840***413@qq.com");
    email.setSubject("commons email");
    email.setHtmlMsg("<div style=\"color:red;font-size:66px\">你好,这是测试邮件</div>");
    email.addTo("***@163.com");
    email.send();
    } catch (EmailException e) {
    e.printStackTrace();
    }
    }
    }

    下面是发送带附件的邮件

    View Code
    import org.apache.commons.mail.EmailAttachment;
    import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.MultiPartEmail;

    public class AttMailTest {

    public static void main(String[] args) {
    EmailAttachment ea = new EmailAttachment();//附件
    ea.setPath("c:\\bar.jpg");//本地随便一个文件

    MultiPartEmail email = new MultiPartEmail();
    email.setHostName("smtp.qq.com");
    email.setAuthentication("840***413", "131****");
    email.setCharset("UTF-8");
    email.setTLS(true);

    try {
    email.setFrom("840***413@qq.com");
    email.setSubject("commons email");
    email.setMsg("这是利用commons包发出的电子邮件");
    email.addTo("***@163.com");
    email.attach(ea);
    email.send();
    } catch (EmailException e) {
    e.printStackTrace();
    }

    }
    }

    其实基本没什么变化;这里有点要注意,现在工程是个Java工程,如果是web工程可能出现不能发送情况,原因是Myeclipse自带的

    包中有mail.jar,但版本已经不对,需要手动删除,导入新下载的包,当初也是搜索了异常才解决问题;还有就是要对邮箱进行一些设置,这个

    比较简单,程序运行后,如果没发送成功(不报错),一般qq会给你发送一封邮件告诉你应该设置某些邮箱参数(打开或者关闭)

  • 相关阅读:
    LUA表的引用理解
    UNITY 打包安卓APK
    UNITY打包问题
    U3D 打包时找不到tag的问题
    break prefab instance的原理
    C#调用LUA函数
    LUA 利用#遍历表的问题
    U3D笔记11:47 2016/11/30-15:15 2016/12/19
    Unity3D 预设打包的注意事项
    回调 和 覆盖
  • 原文地址:https://www.cnblogs.com/wufengxyz/p/2264721.html
Copyright © 2011-2022 走看看