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 ...
最新文章
- 工程路径网站图片路径的问题 绝对路径
- 强化学习(十四) Actor-Critic
- PHP学级与年级的转换函数_PHP addslashes()和stripslashes():字符串转义与还原
- 毕业三年,快手总包 90W 值得去吗?
- 山谷序列C语言,通达信 山谷独创 主升黑马主图源码
- 等式约束和不等式约束下的KKT条件求法
- 1分钟了解区块链的本质
- linux写入二进制文件内容,linux – 从管道读取数据并写入标准输出,中间延迟.必须处理二进制文件...
- MySql 手动执行主从备份
- 20154319 实验九web安全基础实践
- java 如何反编译文件
- linux rman备份与恢复,RMAN备份与恢复 —— 完全恢复与不完全恢复
- 如何把vcf文件转换成maf文件格式?vcf2maf一键解决!
- matlab多行注释快捷键。
- 东南大学成贤学院计算机类怎么样,东南大学成贤学院什么专业比较好 怎么选择专业...
- python获取豆瓣高分电影写入MYSQL+matplotlib简单可视化
- 两部苹果手机同步照片_如何将旧苹果手机音乐里面的歌曲同步到新苹果手机上...
- 过来,带你了解什么是物联网?
- 计算经纬度之间的距离
- 【Android工具】更新观影渠道,安卓、iOS、PC三端通用,免费电影在线观看
热门文章
- VS2008,C++,镜子反射 光线反射游戏
- 腾讯技术团队整理,年度好文轻松彻底入门 Flutter,秒变大前端
- vue.js 2 引导 (maybe it is a whiny posts)
- crh寄存器_STM32直接操作寄存器
- android广播 有序 无序,Android中的有序和无序广播浅析
- 29个省市,364个门店,新飘柔营销背后,是一场80天的AR狂欢
- 成为跨领域的「解决方案架构师」需要什么素养?
- 怎么设置指定号码打不进来_如何屏蔽某个电话号码,让它永远打不进来??
- 大学计算机成绩构成,大学计算机平时成绩占多少?
- vim编辑页面怎么退出_linux系统中如何进入退出vim编辑器