java邮件第一篇-使用命令行发送简单邮件

一、基本概念

SMTP(simple mail transfer protocl简单邮件传输协议),定义了邮件客户端软件与smtp服务器之间,以及两来smtp服务器之间的通信规则。

POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收。是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件

新浪的邮件服务:smtp.sian.com 端口:25

使用telnet命令连接服务器

二、命令行邮件发送实例(新浪邮箱和网易邮箱)

1、准备一个程序用来进行BASE64Encoder的转换

package util;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class mainBase64 {
// 加密
public static String getBase64(String str) {
byte[] b = null;
String s = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (b != null) {
s = new BASE64Encoder().encode(b);
}
return s;
}
public static void main(String[]  args){
System.out.println("请输入编码前的字符串:");
Scanner scanner= new Scanner(System.in);
String string=scanner.next();
String string0=getBase64(string);
System.out.println("编码后:"+string0);
}
}

由于使用命令行发送邮件时候,用户的用户名和密码必须是经过base64加密之后的字符串,所以在发送邮件之前,必须将自己注册的邮箱的用户名和密码加密;


2、得到加密之后的用户名和密码后,就可以使用命令行发送邮件,

下面演示一个完整的发送邮件过程;按照红色命令即可实现简单邮件的发送

  2.1、打开DOS命令行,使用telnet命令:telnet smtp.sina.com 25

            这个是新浪的邮件服务器 ;25是端口;

            注:如果telnet提示不是内部或者外部命令,一定是你的telnet.exe没有安装,你可以在

                    控制面板中,打开关闭的telnet服务器和客户端即可;

  2.2、新浪的服务器连接上后,必须向服务器打招呼,即发送 命令EHLO [ ] ;

            在这里便是ehlo yourhostname

注:junxiuxiao是我的新浪的账号;这里没有使用base64的加密;

  2.3、打过招呼之后,便开始输入用户名和密码:

            在服务器的第一个提示下(虽然看不懂),输入加密后的账号anVueGl1eGlhbw

            在服务器的第二个提示下(虽然看不懂),输入加密后的密码:XXXXXX

在身份验证成功后,会有提示:OK Authenticated 表示登录成功

 2.4、然后,设置发件人和收件人地址;

            直接输入   :mail from! <[email protected]>  

            ok之后,在输入   :rcpt to: <[email protected]>

           紧接着输入:data  

            下一步,输入发件人名称,输入  from! <[email protected]>

             输入标题: subject! nihao  

             换行后输入!!!!!

            然后:test!!!!!

            最后:.


2.5、到此为止,邮件已经发送成功,你可以登录邮箱查看!我的如下:

212920859.jpg本人,测试了qq邮件的发送,如果你发送不成功,可能由于qq的邮件服务没有打开,如果没有开的话,也不成问题,qq会检测到你尝试使用smtp发送邮件,然后qq会给你发一个邮件提醒,告诉你如何打开smtp服务;

   可是,qq邮箱的发件人有些,不满意:感兴趣的同志,自己测试,不是研究的重点!

215407364.jpg



你可能感兴趣的:(java)