前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javaMail发送邮件随笔

javaMail发送邮件随笔

作者头像
一觉睡到小时候
发布2019-07-03 17:08:59
6800
发布2019-07-03 17:08:59
举报
文章被收录于专栏:国产程序员国产程序员

使用javamail发送邮件需要引入maven的依赖:

代码语言:javascript
复制
   <dependency>
       <groupId>javax.mail</groupId>
       <artifactId>mail</artifactId>
       <version>1.4</version>
   </dependency>

单一邮件发送:

代码语言:javascript
复制
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;

public class JavaMailTest {

    public static void main(String[] args) throws MessagingException {
        Properties properties =new Properties();
        properties.setProperty("mail.smtp.auth","true");//认证
        properties.setProperty("mail.transport.protocol","smtp");
        Session session =Session.getInstance(properties);
        session.setDebug(true);
        Message message =new MimeMessage(session);
        message.setText("Hello World");
        message.setFrom(new InternetAddress("15201387834@163.com"));

        Transport transport = session.getTransport();
        transport.connect("smtp.163.com","15201387834","XXXXXXXXX");//此次XXXXXX为授权码
        transport.sendMessage(message,new Address[]{new InternetAddress("15201387834@163.com")});
        transport.close();
}

结果:

多客户邮件发送:

代码语言:javascript
复制
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.*;

public class JavaMailTest {

    public static void main(String[] args) throws MessagingException {
        //创建Properties
        Properties props=new Properties();
        props.setProperty("mail.smtp.auth", "true");//认证
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", "smtp.163.com");//服务器主机

        Session session=Session.getInstance(props,
                new Authenticator() //覆盖父类的方法
                {
                    protected PasswordAuthentication getPasswordAuthentication()
                    {
                        return new PasswordAuthentication("username","password");//返回用户名和密码
                    }
                }
        );
        session.setDebug(true);
        //创建message
        Message msg=new MimeMessage(session);
        msg.setFrom(new InternetAddress("test@163.com"));
        msg.setSubject("中文主题");
        msg.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("test@163.com,test@sina.com"));
        msg.setContent("<span style='color:red;'>这是java编写的邮件程序</span>", "text/html;charset=UTF-8");

        Transport.send(msg);
    }

遇到问题:

1:javax.mail.NoSuchProviderException: No provider for smpt

这是由于

代码语言:javascript
复制
 props.setProperty("mail.smtp.auth", "true");//认证

这一句导致的,看smtp是否写对,大小写问题

2:javax.mail.AuthenticationFailedException

代码语言:javascript
复制
transport.connect("smtp.163.com","15201387834","XXXXXXXXX");//此次XXXXXX为授权码

username 填写自己的邮箱用户名 例如邮箱为123456@163.com就填123456

重点来了!!!!!!

password:此处应该填写我们第一步那里生成的授权码(我就是错在这里.......)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 国产程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档