该博客偏于实战,以代码为主。不过笔者加了许多注释,方便阅读。

好了说说该博客内容。该博客主要是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邮件发送相关推荐

  1. Java实现QQ邮件发送

    QQ邮件发送 可以发送文本,图片,附件,同时可以将它们进行拼接发送. 功能代码被分成了4个方法,每个方法分别代表不同的发送方式,选择自己需要的方法即可. **实现发送邮件之前,先准备好QQ授权码.** ...

  2. Java实现QQ邮件发送客户端程序设计

    目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 !! ...

  3. smtp 邮件发送 附带ssl版本

    2019独角兽企业重金招聘Python工程师标准>>> public class MailFileSendUtils {private Properties props; //系统属 ...

  4. python CGI编程、smtp邮件发送、pygame项目创建

    一.GI编程: 运行在服务器上的一段网关接口的程序(如:HTTP服务器,提供同客户端HTML页面的接口). CGI的运行可以通过网页的链接或者URL: 1.使用你的浏览器访问URL并连接到HTTP w ...

  5. 阿里云SMTP邮件发送Python demon实践

    阿里云SMTP邮件发送Python & Django实践 说明: python 3.6 Django 2.2 阿里云轻应用服务器 注意:轻应用服务器上80 端口和25端口是被占用,465端口被 ...

  6. java实现邮件发送_基于JavaMail的Java实现简单邮件发送功能

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...

  7. Java实现QQ邮件发送原理和实现

    电子邮件 在网络中实现邮件发送和接收的功能,就必须要有专门的邮件服务器(使用SMTP协议).我们发送一封邮件,先要经过各层路由,交换机,基站,然后存到该邮件服务器,(不同的邮件有不同的邮件服务器,比如 ...

  8. java实现SMTP邮件服务器

    电子邮件传递可以由多种协议来实现.目前,在Internet 网上最流行的三种电子邮件协议是SMTP.POP3 和 IMAP,下面分别简单介绍. ◆ SMTP 协议 简单邮件传输协议(Simple Ma ...

  9. java 发送邮件demo_Java 邮件发送Demo

    1.首先在项目中导入jar包,我用的是mail-1.4.jar 2.一下是我的代码: public class SendMailUtil { private static final Logger l ...

最新文章

  1. NAACL| 基于标签感知的双迁移学习在医学命名实体识别中的应用
  2. redhat5.5安装oracle10g出现问题
  3. 《Linus Torvalds 自传》摘录
  4. codevs 1227 方格取数 2
  5. python3 配置文件操作库 configparser 读取配置文件后 元组列表转字典
  6. 开源项目event-stream被注入恶意代码,盗取区块链钱包助记词
  7. python自动化办公 百度网盘-Python自动化办公实战教程2020最新带源码
  8. Css中路径data用法
  9. 表单令牌阻止数据重复提交
  10. 利用IDA Pro反汇编程序
  11. 在toad新增oracle用户,利用toad发现oracle自动为你干了什么(表空间建立和用户建立)...
  12. sql server 入门_SQL Server查询调整入门
  13. java--类型擦除
  14. 实现:首页--上一页--下一页--末页的简单分页实现
  15. 电子书阅读器背景颜色修改方法
  16. 创翼软件linux版本,电信创翼客户端下载
  17. metricbeat监控mysql_metricbeat
  18. apache网站漏洞修复解决办法
  19. 批量修改ip成自定义网址
  20. 大部分有高学历的人比低学历的人强

热门文章

  1. Office2003安装时,自动输入25位密钥的快速工具
  2. sql添加字段并加备注、默认值
  3. 最近,看了一个新片子,很不错。介绍给大家。
  4. cmder waring conEmu binaries were marked as ‘Downloaded from internet‘
  5. 使用C#开发HTTP服务器之支持HTTPS
  6. 【一起来学C语言】数组(二)
  7. 写一个微信pc端,还能发朋友圈!
  8. 支付宝收款软件常见问题处理
  9. 在某些开源框架中,dist文件夹有何用处?
  10. 前端 jQuery框架