java发送邮件

2019-11-14  本文已影响0人  好大一只鹏

使用java mail forAndroid实现发送邮件

1.邮件发送协议smtp协议

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);

        }
    }
}

后续继续更新此文章。

上一篇 下一篇

猜你喜欢

热点阅读