首页 > 技术文章 > java mail

zhaobingqing 2017-07-26 17:02 原文

一、电子邮件协议

    电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP。其中邮件的创建和发送只需要用到 SMTP协议,所有本文也只会涉及到SMTP协议。SMTP 是 Simple Mail Transfer Protocol 的简称,

  即简单邮件传输协议。

二、java Mail

    我们平时通过 Java 代码打开一个 http 网页链接时,通常可以使用已经对 http 协议封装好的 HttpURLConnection 类来快速地实现。Java 官方也提供了对电子邮件协议封装的 Java 类库,就是JavaMail,但并没有包含到标准的 JDK 中,

  需要我们自己去 Java 或 Oracle 官网下载。

三、实现发送简单邮件

  ①添加依赖

<dependencies>
        <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>

</dependencies>

  ②代码实现

    public static void sendMail() throws Exception{
        Properties props = new Properties();
        props.setProperty("mail.host", "smtp.126.com");
        props.setProperty("mail.smtp.auth", "true");
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // TODO Auto-generated method stub
                return new PasswordAuthentication("发送者邮箱用户名", "邮箱密码");
            }
        };
        
        Session session = Session.getDefaultInstance(props,authenticator);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("发送者邮箱地址"));
        /**
         * RecipientType.TO 接收者
         * RecipientType.CC 抄送
         * RecipientType.BCC 暗送(密送)
         */
        message.setRecipient(RecipientType.BCC, new InternetAddress("接收者邮箱地址"));
        message.setSubject("java 测试邮件");
        message.setContent("测试邮件","text/html;charset=UTF-8" );
        Transport.send(message);
                
    }

 

推荐阅读