五、常用工具之邮件发送

(一)邮箱服务器

1.邮箱服务器的基本概念
邮件的客户端:可以只安装在电脑上的也可以是网页形式的
邮件服务器:起到邮件的接受与推送的作用
邮件发送的协议:
协议:就是数据传输的约束
发送邮件的协议:SMTP
接受邮件的协议:POP3 IMAP

服务器地址:  POP3服务器:pop.126.com
            SMTP服务器:smtp.126.com
            IMAP服务器:imap.126.com

2.邮箱的发送过程
这里写图片描述
例:tom@163.com 发送邮件给 lucy@qq.com
(1)tom启动邮箱客户端,拟制邮件,点击发送
(2)客户端将邮件传输到网易的SMTP邮箱服务器
(3)网易的SMTP邮箱服务器将邮件再转发至腾讯的SMTP邮箱服务器
(4)腾讯的SMTP邮箱服务器接收到邮件以后将该邮件放到整个腾讯邮箱服务器(分为SMTPPOP3邮箱服务器)的公共区域
(5)lucy启动桌面客户端向腾讯的POP3邮箱服务器索要邮件或者等待腾讯的POP3邮箱服务器周期性的向服务器推送邮件
  以上就是tom@163.com 发送邮件给 lucy@qq.com的全过程,若是回复邮件,同理。

3.邮箱服务器的安装
1)双击邮箱服务器软件
  任意一款邮箱服务器即可(这里以eyoumailserversetup.exe为例)
2)对邮箱服务器进行配置
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

4.邮箱客户端的安装
这里以安装foxmail65.exe为例
这里写图片描述
这里写图片描述

(二)使用代码操作邮箱服务器

1、引入jar包

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

2、创建工具类

package org.pc.util;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * @author 咸鱼
 * @date 2018/8/16 19:03
 */
public final class EmailUtil {
    /**
     * 发送邮件
     * @param recipientMail 收件人的邮箱
     * @param subject 邮件主题
     * @param content 邮件内容
     */
    public static void sendMail(String recipientMail, String subject, String content) throws IOException, MessagingException {
        //1、邮件服务器设置
        InputStream resourceAsStream = EmailUtil.class.getClassLoader().getResourceAsStream("conf/email.properties");
        final Properties properties = new Properties();
        properties.load(resourceAsStream);

        //2、账号和密码
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //在邮箱服务器上注册的账号和密码
                return new PasswordAuthentication(properties.getProperty("mail.account"),
                        properties.getProperty("mail.password"));
            }
        };

        //3、与邮件服务器建立连接:session
        Session mailSession = Session.getDefaultInstance(properties, authenticator);

        //4、编写邮件
        Message message = new MimeMessage(mailSession);

        //4.1发件人
        message.setFrom(new InternetAddress(properties.getProperty("mail.address")));
        //4.2收件人, to:收件人, cc:抄送, bcc:暗送(密送)
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipientMail));
        //4.3主题
        message.setSubject(subject);
        //4.4内容
        message.setContent(content, "text/html;charset=UTF-8");

        //5、发送消息
        Transport.send(message);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值