JAVA实现SMTP邮件发送
该博客偏于实战,以代码为主。不过笔者加了许多注释,方便阅读。
好了说说该博客内容。该博客主要是JAVA实现SMTP发送邮件,主要做到以下几点
1、打开talent客户端
2、掌握在cmd下邮件的发送
3、发送者邮箱开启客户端授权码
4、掌握Base64编码
5、当然还有你会敲代码的双手^_^
一、掌握在cmd下实现邮件发送
1、首先你的开启Telnet客户端(控制面板/程序/打开或关闭windows功能/选择Telnet客户端)
- 这个可能会遇到一系列问题,百度都有许多解决办法
2、掌握cmd下邮件发送过程
telnet smtp.163.com 25
220
helo myxulinjie
250 ok
auth login
334 dXNlcm5hbWU6
***(这里输入发送者邮箱的Base64码)
334 UGFzc3dvcmQ6
***(这里输入发送者授权码的密码,注意不是邮箱密码)
235 Authentication successful
mail from: <发送者邮箱@163.com>
250 Mail Ok
rcpt to: <接收者邮箱@163.com>
250 Mail Ok
data
354 End data with <CR><LF>.<CR><LF>
to: 接收者邮箱@163.com
from: 发送者邮箱@163.com
subject:test telnet smtp mail
what is your name?
.
250 Mail OK.........
rset
250 OK
quit
221 Bye
二、发送者邮箱开启客户端授权码
这里以163为例
三、JAVA实现SMTP发送邮件
基于CC的Base64编解码工具类
package Base64Demo;import org.apache.commons.codec.binary.Base64;
/**基于commons-codec-1.11 */public class Base64Utile_cc {/**加密过程 */public static String EncodeBase64(byte[] data){Base64 en=new Base64();String str=en.encodeBase64String(data);return str;}/**解密过程 */public static String DecodeBase64(String str) {Base64 de=new Base64();byte[] ResultBase=de.decodeBase64(str);String str2=new String(ResultBase);return str2;}}
实现SMTP发送邮件类
package Base64Demo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;public class SMTPDEMO {public static void main(String[] args) {/**用户名和密码 */String SendUser="ash_ali@163.com";String SendPassword="xlj932834897";String ReceiveUser="ash_ali01@163.com";/**对用户名和密码进行Base64编码 */String UserBase64=Base64Utile_cc.EncodeBase64(SendUser.getBytes());String PasswordBase64=Base64Utile_cc.EncodeBase64(SendPassword.getBytes());try {/**远程连接smtp.163.com服务器的25号端口*并定义输入流和输出流(输入流读取服务器返回的信息、输出流向服务器发送相应的信息) */Socket socket=new Socket("smtp.163.com", 25);InputStream inputStream=socket.getInputStream();//读取服务器返回信息的流InputStreamReader isr=new InputStreamReader(inputStream);//字节解码为字符BufferedReader br=new BufferedReader(isr);//字符缓冲OutputStream outputStream=socket.getOutputStream();//向服务器发送相应信息PrintWriter pw=new PrintWriter(outputStream, true);//true代表自带flushSystem.out.println(br.readLine());/**向服务器发送信息以及返回其相应结果 *///helopw.println("helo myxulinjie");System.out.println(br.readLine());//auth loginpw.println("auth login");System.out.println(br.readLine());pw.println(UserBase64);System.out.println(br.readLine());pw.println(PasswordBase64);System.out.println(br.readLine());//Set "mail from" and "rect to"pw.println("mail from:<"+SendUser+">");System.out.println(br.readLine());pw.println("rcpt to:<"+ReceiveUser+">");System.out.println(br.readLine());//Set "data"pw.println("data");System.out.println(br.readLine());//正文主体(包括标题,发送方,接收方,内容,点)pw.println("subject:myxulinjie");pw.println("from:"+SendUser);pw.println("to:"+ReceiveUser);pw.println("Content-Type: text/plain;charset=\"gb2312\"");//设置编码格式可发送中文内容pw.println();pw.println("大家好,欢迎来到林杰的专栏");pw.println(".");pw.print("");System.out.println(br.readLine());/**发送完毕,中断与服务器连接 */pw.println("rset");System.out.println(br.readLine());pw.println("quit");System.out.println(br.readLine());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
成功收到邮件。该实现也是基于了解Base64编码基础上,如果对Base64不是很熟悉的小伙伴可以转战以下这篇博客了解以下哦
http://blog.csdn.net/w_linux/article/details/79307024
JAVA实现SMTP邮件发送相关推荐
- Java实现QQ邮件发送
QQ邮件发送 可以发送文本,图片,附件,同时可以将它们进行拼接发送. 功能代码被分成了4个方法,每个方法分别代表不同的发送方式,选择自己需要的方法即可. **实现发送邮件之前,先准备好QQ授权码.** ...
- Java实现QQ邮件发送客户端程序设计
目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 !! ...
- smtp 邮件发送 附带ssl版本
2019独角兽企业重金招聘Python工程师标准>>> public class MailFileSendUtils {private Properties props; //系统属 ...
- python CGI编程、smtp邮件发送、pygame项目创建
一.GI编程: 运行在服务器上的一段网关接口的程序(如:HTTP服务器,提供同客户端HTML页面的接口). CGI的运行可以通过网页的链接或者URL: 1.使用你的浏览器访问URL并连接到HTTP w ...
- 阿里云SMTP邮件发送Python demon实践
阿里云SMTP邮件发送Python & Django实践 说明: python 3.6 Django 2.2 阿里云轻应用服务器 注意:轻应用服务器上80 端口和25端口是被占用,465端口被 ...
- java实现邮件发送_基于JavaMail的Java实现简单邮件发送功能
电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...
- Java实现QQ邮件发送原理和实现
电子邮件 在网络中实现邮件发送和接收的功能,就必须要有专门的邮件服务器(使用SMTP协议).我们发送一封邮件,先要经过各层路由,交换机,基站,然后存到该邮件服务器,(不同的邮件有不同的邮件服务器,比如 ...
- java实现SMTP邮件服务器
电子邮件传递可以由多种协议来实现.目前,在Internet 网上最流行的三种电子邮件协议是SMTP.POP3 和 IMAP,下面分别简单介绍. ◆ SMTP 协议 简单邮件传输协议(Simple Ma ...
- java 发送邮件demo_Java 邮件发送Demo
1.首先在项目中导入jar包,我用的是mail-1.4.jar 2.一下是我的代码: public class SendMailUtil { private static final Logger l ...
最新文章
- NAACL| 基于标签感知的双迁移学习在医学命名实体识别中的应用
- redhat5.5安装oracle10g出现问题
- 《Linus Torvalds 自传》摘录
- codevs 1227 方格取数 2
- python3 配置文件操作库 configparser 读取配置文件后 元组列表转字典
- 开源项目event-stream被注入恶意代码,盗取区块链钱包助记词
- python自动化办公 百度网盘-Python自动化办公实战教程2020最新带源码
- Css中路径data用法
- 表单令牌阻止数据重复提交
- 利用IDA Pro反汇编程序
- 在toad新增oracle用户,利用toad发现oracle自动为你干了什么(表空间建立和用户建立)...
- sql server 入门_SQL Server查询调整入门
- java--类型擦除
- 实现:首页--上一页--下一页--末页的简单分页实现
- 电子书阅读器背景颜色修改方法
- 创翼软件linux版本,电信创翼客户端下载
- metricbeat监控mysql_metricbeat
- apache网站漏洞修复解决办法
- 批量修改ip成自定义网址
- 大部分有高学历的人比低学历的人强