資源簡介
Java socket 代理郵件發(fā)送程序,測試無問題,才敢上傳!
代碼片段和文件信息
import?Java.net.*;
import?Java.io.*;
import?Java.util.*;
public?class?SMTPSender{ //定義一個郵件發(fā)送類
Socket?socket=null;
PrintWriter?outData=null;
BufferedReader?inData=null;
String?smtpServer=““;
String?user=““;
String?pass=““;
String?from=““;
String?LINEFEED=“\r\n“;
boolean?isNeedAuthLogin=false;
Vector?to=new?Vector(); //可以保存多個收信人郵件地址的向量
public?static?void?main(String[]?args){
SMTPSender?smtp=new?SMTPSender();
smtp.setMailServer(“smtp.xxx.com“); //設(shè)置電子郵件服務(wù)器地址為smtp.xxx.com
smtp.setMailFrom(“xxx@xxx.com““xxx““???“); //設(shè)置發(fā)信人地址為xxx@xxx.com,用戶名為xxx,口令為???
smtp.addMailTo(“yyy@yyy.com“); //設(shè)置收信人地址為yyy@yyy.com
if(smtp.send(“hello““這是一個測試!“)){? //發(fā)送郵件主題和正文
System.out.println(“郵件發(fā)送成功!“);
}else?System.out.println(“郵件發(fā)送失敗!“);
}
public?void?setMailServer(String?s){
smtpServer=s;
}
public?void?setMailFrom(String?sString?uidString?pwd){
this.from=s;
this.user=uid;
this.pass=pwd;
this.isNeedAuthLogin=(this.user!=null&&this.pass!=null&&!this.user.equals(““)&&!this.pass.equals(““)); //用戶名和口令不為空則采用驗證發(fā)信人的方式
}
public?boolean?addMailTo(String?mailAddr){
to.addElement(mailAddr);
return?true;
}
//郵件發(fā)送函數(shù)
public?boolean?send(String?subjectString?content){
try{
if(smtpServer==null||smtpServer.equals(““))return?false;
if(from==null||from.equals(““))return?false;
if(to.size()<1)return?false;
socket=new?Socket(smtpServer25);
outData=new?PrintWriter(socket.getOutputStream());
inData=new?BufferedReader(new?InputStreamReader(socket.getInputStream()));
readResponse(“220“); //與郵件服務(wù)器連接成功
sendRequest(“HELO?“+smtpServer+LINEFEED);? //發(fā)送HELO命令
readResponse(“250“);
if(isNeedAuthLogin){ //驗證發(fā)信人的流程
//AUTH?LOGIN
sendRequest(“AUTH?LOGIN“+LINEFEED);
readResponse(“334“);
sendRequest(new?String(base64.encodeString(user))+LINEFEED);??//以base64編碼的形式發(fā)送發(fā)信人的用戶名
readResponse(“334“);
sendRequest(new?Str
評論
共有 條評論