目标:通过Java代码发送邮件。
邮件协议:
发邮件的:SMTP (Simple Mail Transport Protocal)
收邮件的协议:pop3 (Post Office Protocal 3)
IMAP 新协议 发邮件也可以收邮件。
(一步步的与服务器交互)
SMTP :
Ehlo<空格><你的域名><回车> Ehlo - 与服务器 |
Auth<SP>Login<CRLF> 请求登录 |
Mail<SP>From:<reverse-path><CRLF> 发件人的email: |
Rcpt<SP>To:<forword-path><CRLF> 收件的地址: |
Data<CRLF> 以下是数据 |
Quit<CRLF> 退出 |
收发邮件的过程:
一般情况下,smtp和pop3是两个服务器(主机)。
Smtp邮件的端口为25。
POP3 端口为110。
发邮件示例
发邮件时,要对用户名和密码进行base64编码
//对用户名和密码进行base64编码
// 对用户名和密码进行base64编码 @Test public void base64() { String name = "one"; String pwd = "1234"; BASE64Encoder en = new BASE64Encoder(); name = en.encode(name.getBytes()); pwd = en.encode(pwd.getBytes()); System.err.println(name); System.err.println(pwd); }
MD5加密
public static void main(String[] args) throws Exception { String pwd = "1234"; // 通过一个类; MessageDigest md = MessageDigest.getInstance("MD5"); // 通过digest方法对原数据进行MD5算法 // 返回一个新的字节 byte[] b = md.digest(pwd.getBytes()); // 通过base64对字节数组进行编码 BASE64Encoder en = new BASE64Encoder(); String ss = en.encode(b); System.err.println(ss); }
smtp协议举例
telnet smtp.sohu.com 25 ehlo wj auth login d2FuZ2ppYW5tZQ== MTk3ODAw mail from:<> rcpt to:<> data from:<> to:<> subject:Ok [保留一个空行.] aaaaaaaaaaaaaaaaaaaaaa . quit
pop3
telnet pop3.126.com 110 user wjme00 pass stat - 显示总体信息。 list - 列出所有信件。 retr 1 - 显示第一封信件。 quit -退出
今天的文章 javaMial简介分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/98920.html