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. sendCloud群发邮件一点总结

    1.群发时,若发送的邮件为html页面,则不能用[普通发送]然后foreach循环: 若是单纯的文本,则可以用普通发送,否则,第一封邮件成功后,后面的都是html乱码. 2.若要用html模板发送,可 ...

  2. OSCache-JSP页面缓存(2)

    如果在jsp中使用如下标签 <cache:cache key="foobar" scope="session"> some jsp content ...

  3. springmvc高级知识点

  4. UIAtlas

    [UIAtlas] UIAtlas is a container that has coordinate information for a bunch of sprites. AtlasType有2 ...

  5. 170318 11:44:26 [ERROR] Can't start server: can't create PID file: No space left on device

    数据库挂了.打开远程,进了系统,service mysqld stop 失败.service mysqld start等了好大一会,提示Timeout error occurred trying to ...

  6. Win10 Tensorflow 配置Mask_RCNN

    1.安装Anaconda3 下载地址  Anaconda 官网下载地址:https://www.continuum.io/downloads 下载以后,点击exe程序,开始安装,详细的安装过程(图片参 ...

  7. html5操作类名API——classlist

    tagNode.classList.add('123'); // 添加类 tagNode.classList.remove('bbb'); // 删除类 tagNode.classList.toggl ...

  8. css3的那些高级选择器一

    css大家都不陌生了,从1996年12月css1正式推出,经历了1998年5月css2,再到2004年2月css2.1,最后一直到2010年推出的css3.css的推出给web带来巨大 的改变,使我们 ...

  9. 20169219 NMap+Wireshark实验报告

    Tcpdump介绍 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中 ...

  10. webform Response的一些成员

    1. Response.BufferOutPut,关闭缓冲区. 2. Response.Flush,一次性把缓冲区的内容释放出来. 3. Response.Clear,清空缓冲区. 4. Respon ...