JavaMail:使用163,QQ和本地服务器邮件发送

发送邮件的原理

在了解其原理之前,先要知道两个协议,SMTP和POP3

SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协议,默认端口,25

POP3:Post Office Protocol 3,即邮局协议,接收邮件的协议,默认端口,110

知道了这两个协议,下面来说说邮件发送和接收的原理图,分两种,相同邮件(QQ邮箱给QQ邮箱)和不同邮件(QQ邮箱给163邮箱)是不一样的。

解释:    

为了方便起见,将新浪邮箱,list@sina.com称为用户A,将搜狐邮箱,wangwu@sohu.com 称为用户B

用户A(新浪邮箱,list@sina.com)给用户B(搜狐邮箱,wangwu@sohu.com)发送一封邮件,那么整个过程就为图中的实线部分,用户A通过OutLook(浏览器或者客户端)登录自己的邮箱帐号,编写邮件,使用Smtp协议发送给Sina的邮件服务器中的Smtp服务器(专门用来发送的服务器),然后在通过SMTP协议,传输给Sohu的邮件服务器中的Smtp服务器,然后通过Sohu的Smtp服务器将邮件发送给用户B的存储设备进行存储(每个用户都会有一个存储空间用来存储邮件的),到这里,用户A就相当于发送成功了,因为已经到达了目的地,如果B用户需要查看邮件内容,必须通过POP3服务器将从自己的存储设备中拿到,然后返回到浏览器或者客户端中显示。

用户B给用户A发送一封邮件,那么整个过程就为图中的虚线部分,是和A给B发一样的步骤。

用户A给一个同样使用新浪邮箱的用户C发送一封邮件,那么其过程就简单的多了,先通过Smtp服务器,然后smtp服务器会将其发送到用户C的存储设备上,A发送邮件就成功了,用户C要显示自己邮箱中的邮件,那么就通过POP3服务器从自己存储设备中拿取所有邮件进行查看。

通过Java代码实现发送邮件

1、准备jar包

核心:mail.jar(新建Java project,如果是web项目,因为javaee自带的有邮件功能,可能存在问题!我们要用自己的mail.jar文件功能,需要删除javaee中mail包!)

依赖:activation.jar, 邮件需要发送附件时使用(如果使用jdk1.6或以上版本,可以不用这个jar文件)

2、使用163邮箱,编写java发送邮件

  1. 获得连接(连接邮箱的服务器和登录)
  2. 创建消息(1、发件人,2、收件人,3、邮件标题,4、邮件内容)
  3. 发送邮件
package javamail;

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.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Mail163Test {
    public static void main(String[] args) throws Exception{
        //0.1 确定连接位置
        Properties props = new Properties();
        //获取163邮箱smtp服务器的地址,
        props.setProperty("mail.host", "smtp.163.com");
        //是否进行权限验证。
        props.setProperty("mail.smtp.auth", "true");
        
        
        //0.2确定权限(账号和密码)
        Authenticator authenticator = new Authenticator() {
            @Override
            public PasswordAuthentication getPasswordAuthentication() {
                //填写自己的163邮箱的登录帐号和授权密码,授权密码的获取,在后面会进行讲解。
                return new PasswordAuthentication(&
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值