• 大小: 7KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Java
  • 标签: java  socket  email  

资源简介

通过Socket发送邮件的Java小程序

资源截图

代码片段和文件信息

package com.vk.socket;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.nio.charset.Charset;

import sun.misc.base64Encoder;

public class SMTPEmail {

private Socket socket;
private boolean needAuth;
private boolean debug = false;
base64Encoder encode = new base64Encoder();

public static void main(String[] args) {
String server = “smtp.163.com“;
MailMessage message = new MailMessage();
message.setFrom(“******@163.com“); 
message.setTo(“******@qq.com“);
message.setSubject(“test“);
message.setContent(“test“);
message.setDatafrom(“******@163.com“);
message.setDatato(“******@qq.com“);
message.setUser(“******“);
message.setPassword(“******“);

try {
SMTPEmail smtp = new SMTPEmail(server true 25);
boolean flag = smtp.sendMail(message server);
if (flag) {
System.out.println(“send success“);
} else {
System.out.println(“send failed“);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public SMTPEmail(String server boolean needAuth int port)
throws UnknownHostException IOException {
try {
socket = new Socket(server port);
this.needAuth = needAuth;
} catch (SocketException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}

public boolean sendMail(MailMessage message String server) {
try {
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
helo(server in out);// HELO
if(needAuth){
authLogin(message in out);// AUTH LOGIN
}
mailfrom(message.getFrom() in out);
String[] str= message.getTo().split(““);
for(int i=0;i rcpt(str[i] in out);
}
data(message.getDatafrom() message.getDatato()
message.getSubject() message.getContent() in out);
quit(in out);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}


public void helo(String server InputStream in OutputStream out)
throws IOException {
int result;
result = response(in);
if (result != 220) {
throw new IOException(“failed“);
}
result = sendServer(“HELO “ + server in out);
if (result != 250) {
throw new IOException(“failed“);
}
}


private int sendServer(String str InputStream in OutputStream out)
throws IOException {
out.write(str.getBytes());
sendNewline(out);
out.flush();
if (debug) {
System.out.println(“command:“ + str);
}
return response(in);
}


private void authLogin(MailMessage message InputStream in OutputStream out)
throws IOException {
int result;
result = sendServer(“AUTH LOGIN“ in out);
if (result != 334) {
throw new IOException(“AUTH 

评论

共有 条评论