我是靠谱客的博主 单纯冬天,最近开发中收集的这篇文章主要介绍Java 通过Office365 服务器发送邮件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

项目需要用程序自动发送邮件,因为公司用的是微软的office,因此决定使用office365作为邮箱服务器。

查了一下,网上有很多教程,但是需要注意以下几点:

1,使用office365作为服务器,首先得有一个outlook邮箱账号,并且该账号必须设置允许POP,不设置允许POP是不行的。如果不想下载outlook客户端进行设置,可以直接在网上账户进行设置,点击链接POP 和 IMAP,登录进去进行设置,截图如下:

2,关于office365邮箱服务器地址,网上有各种版本,比如 m.outlook.com ,smtp.office365.com 或者 smtp.partner.outlook.cn,还有的说要下载证书,或者Java1.6可以,Java1.7不行。但是在上面的截图中可以明确看到,server name 是smtp-mail.outlook.com,端口号是587。

从网上复制的一些代码,稍微改了一下,亲测可以。Java版本是1.8,如下:

package email;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties;


public class Office365 {

    public static void main(String[] args) {

        String sender = "your outlook@outlook.com";
        String password = "your password";

        // 收件人邮箱地址
        String receiver = "123456@qq.com";

        // office365 邮箱服务器地址及端口号
        String host = "smtp-mail.outlook.com";
        String prot = "587";

        try{

            Properties props = new Properties();
            // 开启debug调试
            props.setProperty("mail.debug", "true");  //false
            // 发送服务器需要身份验证
            props.setProperty("mail.smtp.auth", "true");
            // 设置邮件服务器主机名
            props.setProperty("mail.host", host);
            // 发送邮件协议名称
            props.setProperty("mail.transport.protocol", "smtp");
            props.setProperty("mail.smtp.port", prot);
            props.put("mail.smtp.starttls.enable", "true");

            // 设置环境信息
            Session session = Session.getInstance(props);

            // 创建邮件对象
            MimeMessage msg = new MimeMessage(session);

            // 设置发件人
            msg.setFrom(new InternetAddress(sender));

            // 设置收件人
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress(receiver));

            // 设置邮件主题
            msg.setSubject("this is subject");

            // 设置邮件内容
            Multipart multipart = new MimeMultipart();

            MimeBodyPart textPart = new MimeBodyPart();
            textPart.setText("this is the text");
            multipart.addBodyPart(textPart);

            // 添加附件
            MimeBodyPart attachPart = new MimeBodyPart();
            DataSource source = new FileDataSource("D:\tmpfile\document\MailUtil.java");
            attachPart.setDataHandler(new DataHandler(source));
            attachPart.setFileName("MailUtil.java");
            multipart.addBodyPart(attachPart);

            msg.setContent(multipart);

            Transport transport = session.getTransport();
            // 连接邮件服务器
            transport.connect(sender, password);
            // 发送邮件
            transport.sendMessage(msg, new Address[]{new InternetAddress(receiver)});
            // 关闭连接
            transport.close();
        }catch( Exception e ){
            e.printStackTrace();
        }
    }
}

 

最后

以上就是单纯冬天为你收集整理的Java 通过Office365 服务器发送邮件的全部内容,希望文章能够帮你解决Java 通过Office365 服务器发送邮件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部