美文网首页
java发送邮件

java发送邮件

作者: 好大一只鹏 | 来源:发表于2019-11-14 10:33 被阅读0次

使用java mail forAndroid实现发送邮件

1.邮件发送协议smtp协议

  • smtp
    用户连接上邮件服务器之后,要想给它发送一封电子邮件,需要遵循一定的通讯规则,SMTP协议就是用来定义这种通讯规则的。因此,我们通常也把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。
  • pop3
    同样,用户若想从邮件服务器管理的电子邮箱当中接收一封电子邮件话,它连上邮件服务器后,也要遵循一定的通讯格式,POP3协议就是用来定义这种通讯格式的。因此,我们通常也把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。
  • 邮件发送过程


    image.png

1、xdp@sohu.com 用户写好一封Email发送到sohu的Smtp服务器。对应于上图的步骤①

2、sohu的Smtp服务器开始处理xdp@sohu.com 用户的请求,它会根据收件人的地址判断,当前收件人是不是自己管辖的用户,如果是,就直接将Email存放到为该收件人的分配的邮箱空间当中。sohu的Smtp服务器判断收件人地址发现,这一封Email的收件人gacl@sina.com 是Sina的邮件服务器管理的,于是又将Email转发给Sina的Smtp服务器。对应于上图的步骤②

3、Sina的Smtp服务器开始处理sohu的Smtp服务器发送过来的Email,Sina的Smtp服务器根据收件人的地址判断,发现收件人自己管辖的用户,于是就直接将Email存放到为gacl@sina.com 用户的分配的邮箱空间当中。对应于上图的步骤③。

4、xdp@sohu.com 用户将邮件发出去之后,就通知gacl@sina.com 用户去收取。gacl@sina.com 用户于是就连接上Sina的POP3服务器收取邮件,对应于上图的步骤④。

5、POP3服务器从gacl@sina.com 用户的邮箱空间当中取出Email,对应于步骤⑤。

6、POP3服务器将取出来的Email发给gacl@sina.com 用户,对应于步骤⑥。

package com.zp.helloandroid;

import android.widget.Toast;

import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class SendMail extends Thread{


    protected void sendMailMy(String text, String email, String pwd, String toMail) {
        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", "smtphm.qiye.163.com");
        props.put("mail.smtp.auth", "false");
        props.put("mail.smtp.ssl.enable", "false");
        Session session = Session.getInstance(props, null);
        try {
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(email));
            msg.setRecipients(Message.RecipientType.TO, toMail);
            msg.setSubject("优衣库短信验证码");
            msg.setSentDate(new Date());
            msg.setText(text);
            Transport.send(msg,email,pwd);
            System.out.println("邮件发送成功");
        } catch (MessagingException mex) {
            System.out.println("send failed, exception: " + mex);

        }
    }
}

后续继续更新此文章。

相关文章

网友评论

      本文标题:java发送邮件

      本文链接:https://www.haomeiwen.com/subject/bwilictx.html