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

资源简介

Java socket 代理邮件发送程序,测试无问题,才敢上传!

资源截图

代码片段和文件信息

import Java.net.*;
import Java.io.*;
import Java.util.*;

public class SMTPSender{ //定义一个邮件发送类

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“); //设置电子邮件服务器地址为smtp.xxx.com
smtp.setMailFrom(“xxx@xxx.com““xxx““???“); //设置发信人地址为xxx@xxx.com,用户名为xxx,口令为???
smtp.addMailTo(“yyy@yyy.com“); //设置收信人地址为yyy@yyy.com
if(smtp.send(“hello““这是一个测试!“)){  //发送邮件主题和正文
System.out.println(“邮件发送成功!“);
}else System.out.println(“邮件发送失败!“);
}

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(““)); //用户名和口令不为空则采用验证发信人的方式
}

public boolean addMailTo(String mailAddr){
to.addElement(mailAddr);
return true;
}

//邮件发送函数
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“); //与邮件服务器连接成功

sendRequest(“HELO “+smtpServer+LINEFEED);  //发送HELO命令
readResponse(“250“);

if(isNeedAuthLogin){ //验证发信人的流程
//AUTH LOGIN
sendRequest(“AUTH LOGIN“+LINEFEED);
readResponse(“334“);
sendRequest(new String(base64.encodeString(user))+LINEFEED);  //以base64编码的形式发送发信人的用户名
readResponse(“334“);

sendRequest(new Str

评论

共有 条评论