在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Java网络编程 → Mail-smtp-pop3(java收发邮件)

Mail-smtp-pop3(java收发邮件)

Java网络编程

下载此实例
  • 开发语言:Java
  • 实例大小:7.99KB
  • 下载次数:15
  • 浏览次数:344
  • 发布时间:2020-04-05
  • 实例类别:Java网络编程
  • 发 布 人:wllx
  • 文件格式:.zip
  • 所需积分:3
 相关标签: SMTP POP3

实例介绍

【实例简介】基于smtp协议和pop3协议代码发送邮件

【实例截图】

└─Mail-smtp-pop3
    │  .classpath
    │  .project
    │  
    ├─pop3
    │      POP3Demo.class
    │      POP3Demo.java
    │      
    └─smtp
            SMTPDemo.class
            SMTPDemo.java
            


【核心代码】package smtp;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

public class SMTPDemo {
String mailServer;
String from;
String pass;
String to;
String content;
String lineFeet = "\r\n";
private int port = 25;

Socket client;
BufferedReader in;
DataOutputStream os;

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public String getMailServer() {
return mailServer;
}

public void setMailServer(String mailServer) {
this.mailServer = mailServer;
}

public String getFrom() {
return from;
}

public void setFrom(String from) {
this.from = from;
}

public String getPass() {
return pass;
}

public void setPass(String pass) {
this.pass = pass;
}

public String getTo() {
return to;
}

public void setTo(String to) {
this.to = to;
}

private boolean init() {
boolean boo = true;
if (mailServer == null || "".equals(mailServer)) {
return false;
}
try {
client = new Socket(mailServer, port);
in = new BufferedReader(new InputStreamReader(
client.getInputStream()));
os = new DataOutputStream(client.getOutputStream());
String isConnect = response();
if (isConnect.startsWith("220")) {

} else {
System.out.println("建立连接失败:" isConnect);
boo = false;
}
} catch (UnknownHostException e) {
System.out.println("建立连接失败!");
e.printStackTrace();
boo = false;
} catch (IOException e) {
System.out.println("读取流失败!");
e.printStackTrace();
boo = false;
}
return boo;
}

private String sendCommand(String msg) {
String result = null;
try {
os.writeBytes(msg);
os.flush();
result = response();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}

private String response() {
String result = null;
try {
result = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}

private void close() {
try {
os.close();
in.close();
client.close();
} catch (IOException e) {
e.printStackTrace();
}

}

public boolean sendMail() {

if (client == null) {
if (init()) {

} else {
return false;
}
}

if (from == null || from.isEmpty() || to == null || to.isEmpty()) {
return false;
}

String result = sendCommand("HELO " mailServer lineFeet);
if (isStartWith(result, "250")) {
} else {
System.out.println("握手失败:" result);
return false;
}

String auth = sendCommand("AUTH LOGIN" lineFeet);
if (isStartWith(auth, "334")) {
} else {
return false;
}
String user = sendCommand(new String(Base64.encode(from.getBytes()))
lineFeet);
if (isStartWith(user, "334")) {
} else {
return false;
}
String p = sendCommand(new String(Base64.encode(pass.getBytes()))
lineFeet);
if (isStartWith(p, "235")) {
} else {
return false;
}

String f = sendCommand("Mail From:<" from ">" lineFeet);
if (isStartWith(f, "250")) {
} else {
return false;
}
String toStr = sendCommand("RCPT TO:<" to ">" lineFeet);
if (isStartWith(toStr, "250")) {
} else {
return false;
}

String data = sendCommand("DATA" lineFeet);
if (isStartWith(data, "354")) {
} else {
return false;
}

StringBuilder sb = new StringBuilder();
sb.append("From:<" from ">" lineFeet);
sb.append("To:<" to ">" lineFeet);
sb.append("Subject:test" lineFeet);
sb.append("Date:2010/10/27 17:30" lineFeet);
sb.append("Content-Type:text/plain;charset=\"GB2312\"" lineFeet);
sb.append(lineFeet);
sb.append(content);
sb.append(lineFeet "." lineFeet);

String conStr = sendCommand(sb.toString());
if (isStartWith(conStr, "250")) {
} else {
return false;
}

String quit = sendCommand("QUIT" lineFeet);
if (isStartWith(quit, "221")) {
} else {
return false;
}
close();
return true;
}

private boolean isStartWith(String res, String with) {
return res.startsWith(with);
}

public static void main(String[] args) {
SMTPDemo mail = new SMTPDemo();
mail.setMailServer("smtp.qq.com");
mail.setFrom("393628134@qq.com");
mail.setPass("199169");
mail.setTo("285484657@qq.com");
mail.setContent("hello,my name is zhujiahao.");
boolean boo = mail.sendMail();
if (boo)
System.out.println("邮件发送成功!");
else {
System.out.println("邮件发送失败!");
}
}
}

标签: SMTP POP3

实例下载地址

Mail-smtp-pop3(java收发邮件)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警