https://www.iteye.com/blog/fangyunfeng-1847352

https://blog.csdn.net/weixin_38465623/article/details/80789793

https://blog.csdn.net/qq_32371887/article/details/72821291

最近项目发邮件程序出了问题,发现无法支持smtp.gmail.com邮件服务器,在网上查了些资料,找到了支持gmail邮件发送的处理方法,并做了测试验证:

有关javamail各个属性的介绍,请查看以下网址:

http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html

import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MyMailSender
{
    private String hostName = "smtp.gmail.com";
    private String userName = "******";
    private String userPwd = "******";
    private String fromUserMail = "******";
    private String toUserMail = "******";

    public void sendTestMail() throws AddressException, MessagingException
    {
        Properties mailProps = new Properties();
        mailProps.setProperty("mail.smtp.host", this.hostName);
        mailProps.setProperty("mail.smtp.starttls.enable", "true");
        mailProps.setProperty("mail.smtp.auth", "true");
        mailProps.setProperty("mail.smtp.quitwait", "false");

//如果不要对服务器的ssl证书进行受信任检查,测添加以下语句

//mailProps.setProperty("mail.smtp.ssl.trust","*");

        Session mailSession = Session.getDefaultInstance(mailProps,
                new Authenticator()
                {
                    protected PasswordAuthentication getPasswordAuthentication()
                    {
                        return new PasswordAuthentication(userName, userPwd);
                    }
                });

        Message mailMessage = new MimeMessage(mailSession);
        mailMessage.setFrom(new InternetAddress(this.fromUserMail));
        mailMessage.setRecipients(Message.RecipientType.TO,
                InternetAddress.parseHeader(this.toUserMail, false));

        mailMessage.setSubject("This is a test mail.");
        mailMessage.setText("This is a test mail for gmail");
        mailMessage.setSentDate(new Date());

        Transport.send(mailMessage);
    }

    public static void main(String[] args)
    {
        try
        {
            new MyMailSender().sendTestMail();
        } 
        catch (AddressException e)
        {
            e.printStackTrace();
        } 
        catch (MessagingException e)
        {
            e.printStackTrace();
        }
    }
}

该程序分别在smtp.gmail.com,smtp.mail.yahoo.com.cn,smtp.qq.com,smtp.163.com上验证过,可以发送成功

javamail发送邮件,支持yahoo,google,163.com,qq.com邮件发送的更多相关文章

  1. 使用JavaMail发送邮件-从FTP读取图片并添加到邮件正文发送

    业务分析: 最近工作需要,需要从FTP读取图片内容,添加到邮件正文发送.发送邮件正文,添加附件采用Spring的MimeMessageHelper对象来完成,添加图片也将采用MimeMessageHe ...

  2. 技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送

    1.腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录.详情请看: http://service.mail.q ...

  3. 发送邮件(遵循smtp协议即简单的邮件发送协议)

    HandleSendEmail.aspx逻辑 protected void Page_Load(object sender,EventArgs e) { foreach(var item in Req ...

  4. TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

    在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...

  5. ThinkPHP 中使用 PHPMailer 发送邮件 支持163和QQ邮箱等

    [摘要]ThinkPHP是一个开源的PHP框架, 是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.本文介绍ThinkPHP 中使用 PHPMailer 发送邮件. PHP是自带可以发送邮件的Ma ...

  6. 利用JavaMail发送邮件:smtp.163.com

    一.利用JavaMail发送邮件案例: 1.maven项目结构: 2.先在pom.xml里边加入Javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven): 3.配置email ...

  7. 如何在 Laravel 中使用 SMTP 发送邮件(适用于 163、QQ、Gmail 等)

    Laravel  和 Laravel  的邮件发送使用方式完全一致.Laravel  的邮件发送中文文档在:http: 邮箱为例,展示如何用 Laravel 内置的邮件发送类来发送邮件. 配置 修改邮 ...

  8. springboot(七)JavaMail发送邮件

    JavaMail简介: JavaMail是SUN提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,支持常用的邮件协议,如:SMTP.POP3.IMAP,开发人员使用JavaMail编写邮件 ...

  9. JavaMail发送邮件(超详细)

    一:邮件发送的基本概念 本文我将阐述使用JavaMail方式发送和接收Email的详细说明,本博客本着以后遇到类似的邮件发送需求可以直接把代码粘过去直接使用,快捷方便省时间,对于刚接触的JavaMai ...

随机推荐

  1. 【扫盲】i++和++i的区别

    从学java开始,我们就听说过i++和++i的效果一样,都能使i的值累加1,效果如同i=i+1: 但是使用过程中,有和不同呢,今天我们来说说看. 案例一: int i=0; int j=i++; Sy ...

  2. git原理学习记录:从基本指令到背后原理,实现一个简单的git

    一开始我还担心 git 的原理会不会很难懂,但在阅读了官方文档后我发现其实并不难懂,似乎可以动手实现一个简单的 git,于是就有了下面这篇学习记录. 本文的叙述思路参照了官方文档Book的原理介绍部分 ...

  3. CVE-2017-12149 JBOOS反序列化漏洞复现

    一.漏洞描述 2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告.该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccess ...

  4. Idea利用maven创建web项目,并配置tomcat

    参考http://blog.csdn.net/myarrow/article/details/50824793#comments

  5. Future.get(并发之从任务中产生返回值)

    import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java ...

  6. 智能BPOS小票模板字体的使用

    关于伯俊智能BPOS零售小票模板的设置,常用字体"黑体"."宋体"."Arial"这几个字体,在设置的时候看似没有问题, 但是在正真使用打印 ...

  7. 安装cmake过程g++: 错误:unrecognized command line option ‘-std=gnu++14’

    问题根因 这个错误一般是gcc/g++版本太低导致的 疑问 我本地明明安装的是高版本的gcc/g++为何说是低版本的呢,有图为证: 这主要是因为你安装了多个版本的gcc/g++,但是默认(/usr/b ...

  8. 【分布式锁的演化】“超卖场景”,MySQL分布式锁篇

    前言 之前的文章中通过电商场景中秒杀的例子和大家分享了单体架构中锁的使用方式,但是现在很多应用系统都是相当庞大的,很多应用系统都是微服务的架构体系,那么在这种跨jvm的场景下,我们又该如何去解决并发. ...

  9. 2.1JAVA文件基本结构

    命名 包名 全为英文小写 项目包命名 域名反转.团队名.项目名 相关项目包命名 域名反转.团队名.父项目名.子项目名 类和接口名 所有单词首字母大写 抽象类 用"Abstract" ...

  10. spark:distinct算子实现原理

    distinct的底层使用reducebykey巧妙实现去重逻辑 //使用reduceByKey或者groupbykey的shuffle去重思想rdd.map(key=>(key,null)). ...