java 邮件 客户端_JAVA编写ESMTP客户端发送邮件代码
由SOHU向网易发邮件
1、效果
2、代码
import java.io.*;
import java.net.*;
public class Smtptest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Socket smtpclient=null;
DataOutputStream os=null;
BufferedReader is=null;
String answer=null;
try{
smtpclient=new Socket("smtp.sohu.com",25);
is=new BufferedReader(new InputStreamReader(smtpclient.getInputStream()));
os=new DataOutputStream(smtpclient.getOutputStream());
}
catch(UnknownHostException ue){
System.err.println("未知主机");
}
catch(IOException io){
System.err.println("I/O错误");
}
try{
System.out.println("正在登录邮箱服务器....");
os.writeBytes("EHLO localhost\r\n");
while ((answer=is.readLine())!=null){
System.out.println("Server:"+answer);
if (answer.indexOf("220")!=-1){
break;
}
}
System.out.println("正在检测邮箱支持的服务....");
os.writeBytes("AUTH LOGIN\r\n");
while ((answer=is.readLine())!=null){
if (answer.indexOf("250")==-1){
break;
}
System.out.println("Server:"+answer);
}
System.out.println("正在验证用户名和密码....");
System.out.println("Server:"+answer);
os.writeBytes("bmhzb2Z0\r\n");//用户名的BASE64值
os.writeBytes("********\r\n");//密码的BASE64值,这里用*代替
while ((answer=is.readLine())!=null){
System.out.println("Server:"+answer);
if (answer.indexOf("235")!=-1){
System.out.println("验证成功");
break;
}
else if (answer.indexOf("334")==-1) {
System.out.println("验证失败");
os.close();
is.close();
smtpclient.close();
System.exit(0);
}
}
System.out.println("开始发送邮件....");
os.writeBytes("MAIL From: < nhsoft@sohu.com >\r\n");
os.writeBytes("RCPT To: < nhsoft@sohu.com >\r\n");
os.writeBytes("RCPT To: < nhsoft@126.com >\r\n");
os.writeBytes("DATA\r\n");
while ((answer=is.readLine())!=null){
if (answer.indexOf("354")!=-1){
break;
}
System.out.println("Server:"+answer);
}
System.out.println("Server:"+answer);
System.out.println("正在发送邮件内容....");
os.writeBytes("From: nhsoft@sohu.com\r\n");
os.writeBytes("To: nhsoft@126.com,nhsoft@sohu.com\r\n");
os.writeBytes("Subject: test mail-21\r\n");
os.writeBytes("Content-Type: text/html\r\n");
os.writeBytes("This is a test-21 mail, you don't reply it.\r\n\r\n");
os.writeBytes("\r\n.\r\n");
while ((answer=is.readLine())!=null){
System.out.println("Server:"+answer);
if (answer.indexOf("250")!=-1){
break;
}
}
os.writeBytes("QUIT\r\n");
while ((answer=is.readLine())!=null){
System.out.println("Server:"+answer);
if (answer.indexOf("221")!=-1){
System.out.println("邮件发送成功,退出邮箱!");
break;
}
}
os.close();
is.close();
smtpclient.close();
}
catch(UnknownHostException ue){
System.err.println("无法连接主机");
}
catch(IOException io){
System.err.println("发送I/O错误");
}
}
}
3、执行情况:
正在登录邮箱服务器....
Server:220 smtp.sohu.com ESMTP Postfix
正在检测邮箱支持的服务....
Server:250-smtp.sohu.com
Server:250-PIPELINING
Server:250-SIZE 10240000
Server:250-VRFY
Server:250-ETRN
Server:250-AUTH LOGIN
Server:250-ENHANCEDSTATUSCODES
Server:250-8BITMIME
server:250 DSN
正在验证用户名和密码....
Server:334 VXNlcm5hbWU6
Server:334 UGFzc3dvcmQ6
Server:235 2.0.0 Authentication successful
验证成功
开始发送邮件....
Server:354 Send from Rising mail proxy
正在发送邮件内容....
Server:250
Server:250 2.1.5 Ok
Server:354 End data with .
Server:250 2.0.0 Ok: queued as 74169608241
Server:221 2.0.0 Bye
邮件发送成功,退出邮箱!
java 邮件 客户端_JAVA编写ESMTP客户端发送邮件代码相关推荐
- java 邮件 定时_java实现邮件定时发送
需求:系统定时发送E-mail到其客户,达到通知的效果.先将实例分享给大家,如果确实有一些帮助的话,请大家来点掌声! 首先介绍java定时器(java.util.Timer)有定时执行计划任务的功能, ...
- java邮件模板_java创建邮件模板
一直在整发送邮件,由于发送的邮件格式比较固定,是一个固定的表格,我就想能不能做一个邮件的模板,这样在发送邮件的时候只需要将内容填充上去,而不需要像之前一样,每次都要重新拼邮件的内容. 下面先来看一下邮 ...
- java制造病毒_java编写病毒的可行性分析
java编写病毒的可行性分析 最近心情十分郁闷,查阅一些病毒的资料消遣一下,居然发现这样的论调讲 java语言不可能编写病毒,在此特地反驳一下. 1 可执行 论调1:java需要依赖jre,无法在无j ...
- java邮件抄送_Java发送邮件遇到的常见需求汇总
基于SMTP发送一个简单的邮件 首先,需要一个认证器: package No001_基于SMTP的文本邮件; import javax.mail.Authenticator; import javax ...
- java 邮件 定时_Java定时发送邮件
背景 甲方爸爸:新接入业务在国庆以及军运会期间需要每天巡检业务并发送邮件告知具体情况! 我司:没问题. 甲方爸爸:假期也要发噢. 我司:没问题(...). 刚开始计划指定几个同事轮流发送,业务只要不被 ...
- java程序如何生成客户端_java webservice生成客户端代码并调用
wsimport简介 在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用web ...
- java soap 客户端_java实现soap客户端
JSR 109 -- J2EE 环境的 API JSR 109 指定了 Java 2 Enterprise Edition(J2EE)环境的 Web 服务编程模型和体系结 构.JSR 109 构建在 ...
- ssl java 客户端_Java SSL生成客户端和服务端crt文件
简述: SSL(百度百科) Secure Socket Layer 安全套接层, 是为网络通信提供安全以及数据完整性的一种安全协议,在传输层对网络连接进行加密 SSL协议分为两层: 1)SSL记录协议 ...
- java 图片请求_java请求C++客户端上传图片
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 接口名称:std::string SendVehiclePass(std::string VehiclePassInfo, struct xsd__bas ...
最新文章
- CPU 内部结构解析
- JAVA中是传值还是传引用?回答KEZHANG问题
- python从入门到精通视频教程百度云-let's python从入门到精通视频教程
- 软考高项之各大管理计划内容-攻坚记忆
- node.js邮箱注册,激活,登陆相关案例
- wamp无法使用php,使用wamp无法访问www中的php文件
- 张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用
- pythonjava哪个好学_Python和Java哪个好学?没基础学python
- mvc5 + ef6 + autofac搭建项目(三)
- 微课|中学生可以这样学Python(例5.10):字符串编码与加密
- 广实1592: 1.6-06:校门外的树
- 工作中不要扯虎皮吓唬人
- mdx词典包_译者的电子工具——手机词典上篇
- 如何用css实现元素固定宽高比?
- ir2110驱动占空比不能太高
- MTK USB OTG功能如何打开及实现
- java -- 百度API 接口使用
- 优矿量化向导式因子选股
- STP的端口状态,BPDU,计时器
- 查找数字的下标--二分法
热门文章
- 费马大定理n=3时的欧拉证明,x^3+y^3=z^3无xyz≠0的整数解
- SpringCloud之搭建PiggyMetrics项目
- iftop监控网卡实时流量
- docker启动容器之后马上又自动关闭
- 论文笔记:MPRNet: Multi-Stage Progressive Image Restoration
- Java-异常处理(编译时异常、运行时异常及处理机制,自定义异常)
- AI发电厂——数据标注公司(国内数据标注公司服务调研)
- 极路由——彻底凉了,云插件服务都关闭了,还没root的抓紧了
- 253:丛林中的路——最小生成树Prim
- selenium学习——问卷星(可控比例)