Java 实现邮件的发送

开发邮箱发送功能必须看邮箱方面的资料 改一些东西  (我的是qq 邮箱哟   开通

 

已开启

0.开通qq的邮件功能

1.导入jar

2.复制我的代码就ok啦

3.应该没有问题

 
/**
 *
 */
package com.email;

/**
 * <p>Description: </p>
 * @author 朱开心
 * @date 2018年6月6日
 *
 */
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/**
 * 服务器邮箱
 */
public class MailAuthenticator extends Authenticator{

/**
     * 用户名
     */
    private String username;
    /**
     * 登录密码
     */
    private String password;
    /**
     * 继承Authenticator类需重写此方法
     */
    @Override
    protected PasswordAuthentication getPasswordAuthentication(){
        return new PasswordAuthentication(username,password);
    }

public MailAuthenticator(){

}
    public MailAuthenticator(String username, String password){
        this.username = username;
        this.password = password;
    }
    public String getUsername() {
        return username;
    }
    public String getPassword() {
        return password;
    }
}

 
/**
 *
 */
package com.email;

/**
 * <p>Description: </p>
 * @author 朱开心
 * @date 2018年6月6日
 *
 */
/**
 * 邮件对象
 */
public class Mail {

/**
     * 邮件标题
     */
    private String subject;
    /**
     * 邮件内容
     */
    private String content;

public Mail(){

}

public Mail(String subject, String content) {
        this.subject = subject;
        this.content = content;
    }

public String getSubject() {
        return subject;
    }

public void setSubject(String subject) {
        this.subject = subject;
    }

public String getContent() {
        return content;
    }

public void setContent(String content) {
        this.content = content;
    }

}

/**
 *
 */
package com.email;

import java.security.GeneralSecurityException;
/**
 * <p>Description: </p>
 * @author 朱开心
 * @date 2018年6月6日
 *
 */
import java.util.List;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

import com.sun.mail.util.MailSSLSocketFactory;

/**
 * 邮件发送器:可单发,可群发
 */
public class MailSender {
    /**
     * 发送邮件的Properties文件
     */
    private final transient Properties props = System.getProperties();
    /**
     * 服务器邮箱登录验证
     */
    private transient MailAuthenticator mailAuthenticator;
    /**
     * 邮箱Session
     */
    private transient Session session;
    /**
     * 初始化邮箱发送器
     *
     * @param mailServiceUrl
     *          服务器邮箱地址
     * @param username
     *          服务器邮箱用户名
     * @param password
     *          服务器邮箱登录密码
     */
    public MailSender(final String mailServiceUrl,final String username, final String password){
        init(mailServiceUrl, username, password);
    }
    /**
     * 初始化邮箱发送器
     *
     * @param username
     *          服务器邮箱用户名
     * @param password
     *          服务器邮箱登录密码
     */
    public MailSender(final String username, final String password){
        //通过邮箱地址解析smtp服务器,对大多数邮箱都管用
        final String mailServiceUrl = "smtp." + username.split("@")[1];
        init(mailServiceUrl, username, password);
    }
    /**
     * 初始化操作
     *
     * @param mailServiceUrl
     *          服务器邮箱地址
     * @param username
     *          服务器邮箱用户名
     * @param password
     *          服务器邮箱登录密码
     */
    public void init(String mailServiceUrl, String username, String password){
        //初始化props
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", mailServiceUrl);
        MailSSLSocketFactory sf;
        try {
            sf = new MailSSLSocketFactory();
             sf.setTrustAllHosts(true);  
             props.put("mail.smtp.ssl.enable", "true");  
              props.put("mail.smtp.ssl.socketFactory", sf);  
        } catch (GeneralSecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
       
       
        //服务器邮箱验证
        mailAuthenticator = new MailAuthenticator(username, password);
        //创建session,想当于邮箱登录
        session = Session.getInstance(props, mailAuthenticator);
    }
    /**
     * 发送邮件
     *
     * @param recipient
     *          收信人邮箱地址
     * @param subject
     *          邮件标题
     * @param content
     *          邮件内容
     * @throws AddressException
     * @throws MessagingException
     */
    public void send(String recipient, String subject, String content) throws AddressException, MessagingException{
        //创建mime类型邮件
        final MimeMessage msg = new MimeMessage(session);
        //设置发信人
        msg.setFrom(new InternetAddress(mailAuthenticator.getUsername()));
        //设置收信人
        msg.setRecipient(RecipientType.TO, new InternetAddress(recipient));
        //设置邮件标题
        msg.setSubject(subject);
        //设置邮件内容
        msg.setContent(content, "text/html;charset=utf-8");
        //发送邮件
        Transport.send(msg);
    }
    /**
     * 群发邮件
     *
     * @param recipients
     *          收信人们的邮箱地址
     * @param subject
     *          邮件标题
     * @param content
     *          邮件内容
     * @throws AddressException
     * @throws MessagingException
     */
    public void send(List<String> recipients, String subject, String content) throws AddressException, MessagingException{
        //创建mime类型邮件
        final MimeMessage msg = new MimeMessage(session);
        //设置发信人
        msg.setFrom(new InternetAddress(mailAuthenticator.getUsername()));
        //设置收信人们
        int num = recipients.size();
        InternetAddress[] addresses = new InternetAddress[num];
        for (int i = 0; i < num; i++) {
            addresses[i] = new InternetAddress(recipients.get(i));
        }
        msg.setRecipients(RecipientType.TO, addresses);
        //设置邮件标题
        msg.setSubject(subject);
        //设置邮件内容
        msg.setContent(content, "text/html;charset=utf-8");
        Transport.send(msg);
    }
    /**
     * 发送邮件
     *
     * @param recipient
     *          收信人邮箱地址
     * @param mail
     *          邮件对象
     * @throws AddressException
     * @throws MessagingException
     * @throws
     */
    public void send(String recipient, Mail mail) throws AddressException, MessagingException{
        this.send(recipient, mail.getSubject(), mail.getContent());
    }
    /**
     * 群发邮件
     *
     * @param recipients
     *          收信人们的邮箱地址
     * @param mail
     *          邮件对象
     * @throws AddressException
     * @throws MessagingException
     * @throws
     */
    public void send(List<String> recipients, Mail mail) throws AddressException, MessagingException{
        this.send(recipients, mail.getSubject(), mail.getContent());
    }
}

/**
 *
 */
package com.email;

/**
 * <p>Description: </p>
 * @author 朱开心
 * @date 2018年6月6日
 *
 */
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;

/**
 * 测试发送邮件
 */
public class MailTest {

public static void main(String[] args) {
        //发件人邮箱地址:这里填写要发送出去的邮箱地址即可
        String username = "798130749@qq.com";
        //发件人邮箱登录密码:这里填写要发送出去的邮箱的登录密码即可
        String password = "akxpgntfdbtubcja";//自己的邮箱秘钥 不是邮箱密码哟
        //akxpgntfdbtubcja
      //  vulyumdckcaibfga
      //  akxpgntfdbtubcja
        //创建邮箱发送器
        MailSender mailSender = new MailSender(username,password);
        //邮箱对象
        Mail mail = new Mail("zhukaixin","我是世界上最帅的男人");
        //收件人邮箱地址:这里填写收件的邮箱的地址即可
        String recipient = "1024655706@qq.com";
        try {
            mailSender.send(recipient, mail);
        } catch (AddressException e) {
            System.out.println("发信人邮箱路径不正确........");
            e.printStackTrace();
        } catch (MessagingException e) {
            System.out.println("邮件发送失败........");
            e.printStackTrace();
        }
     //   System.out.println("发送成功........");
    }
}

以上就是Java实现发送邮件的所有代码:

  自己参看网上一些大佬的代码  自己在修改的  可以发送邮件、、、、、、

Java 实现邮件的发送的更多相关文章

  1. Java实现邮件代理发送

    使用java实现邮件发送 首先需要添加jar文件mailapi.jarstmp.jar 1 import java.util.Properties; import javax.mail.Address ...

  2. JAVA Mail邮件实现发送

    package com.test;import java.util.Date;import java.util.Properties;import javax.mail.Message;import ...

  3. java实现邮件定时发送

    最近做项目时客户提出了一个需求:系统定时发送E-mail到其客户,达到通知的效果.先将实例分享给大家,如果确实有一些帮助的话,请大家来点掌声! 首先介绍java定时器(java.util.Timer) ...

  4. java判断邮件是否发送成功

    http://www.cnblogs.com/winner-0715/p/5136392.html

  5. 利用工具MailUtils实现邮件的发送,遇到的大坑,高能预警!!

    java实现邮件的发送依赖的jar包有两个:mail.jar和activation.jar,我也找到了一个工具包:itcast-tools-1.4.jar,实现原理大家可以查看源码,先放出资源链接 h ...

  6. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  7. 用java实现邮件发送验证码

    java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬 ...

  8. web基础---->java邮件的发送

    这里记录一下关于java邮件发送代码的编写.你在我身边也好,在天边也罢,想到世界的角落有一个你,觉得整个世界也变得温柔安定了. java邮件的发送 一.直接贴出代码,如下: package com.c ...

  9. Java Mail 邮件发送简单封装

    上一篇文章我们用写了一个Java Mail 的Demo,相信你已经可以用那个例子来发送邮件了.但是Demo 有很多的问题. 首先每次发送需要配置的东西很多,包括发件人的邮箱和密码.smtp服务器和SM ...

随机推荐

  1. ZooKeeper集群搭建过程

    ZooKeeper集群搭建过程 提纲 1.ZooKeeper简介 2.ZooKeeper的下载和安装 3.部署3个节点的ZK伪分布式集群 3.1.解压ZooKeeper安装包 3.2.为每个节点建立d ...

  2. ORACLE 误删除数据恢复

    首先通过如下SQL语句找到执行删除的LAST_ACTIVE_TIME.即找到具体的删除时间. select SQL_TEXT,LAST_ACTIVE_TIME from v$sqlarea where ...

  3. Unity调试设置

    [Unity调试设置] 1.Mac中,"Unity"->"Preferences...". Windows中,"Edit"->& ...

  4. Spring总结六:AOP(面向切面编程)

    概述: AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术.它是一种新的 ...

  5. Nginx配置之基于域名的虚拟主机

    1.配置好DNS解析 大家好,今天我给大家讲解下在Linux系统下DNS服务器的基本架设,正向解析,反向解析,负载均衡,还有从域以及一个服务器两个域或者多个域的情况. 实验环境介绍:1.RHEL5.1 ...

  6. EKF model&realization

    REF: https://pythonrobotics.readthedocs.io/en/latest/modules/localization.html#unscented-kalman-filt ...

  7. 【SQL Server数据迁移】把csv文件中的数据导入SQL Server的方法

    [sql] view plaincopy --1.修改系统参数 --修改高级参数 sp_configure 'show advanced options',1 go --允许即席分布式查询 sp_co ...

  8. 10、差异基因topGO富集

    参考:http://www.biotrainee.com/thread-558-1-1.html http://bioconductor.org/packages/3.7/bioc/ http://w ...

  9. Luogu 3616 富金森林公园

    刚看到此题的时候:sb分块??? Rorshach dalao甩手一句看题 于是回去看题……果然是题读错了…… [思路] 对权值离散化后(要先读入所有输入里的权值一起离散化……所以一共有4e4个数据( ...

  10. intval()函数

    获取变量的整数值 1.转换前转化后 原因: