服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

使用socket发送电子邮件

import java.io.bufferedreader;
import java.io.filereader;
import java.io.ioexception;
import java.io.inputstream;
import java.io.inputstreamreader;
import java.io.outputstream;
import java.io.outputstreamwriter;
import java.io.printwriter;
import java.net.inetaddress;
import java.net.socket;
import java.net.unknownhostexception;

public class smtpdemo {

  public static void main(string args[]) throws ioexception,
      unknownhostexception {
    string msgfile = "file.txt";
    string from = "java2s@java2s.com";
    string to = "youremail@yourserver.com";
    string mailhost = "yourhost";
    smtp mail = new smtp(mailhost);
    if (mail != null) {
      if (mail.send(new filereader(msgfile), from, to)) {
        system.out.println("mail sent.");
      else {
        system.out.println("connect to smtp server failed!");
      }
    }
    system.out.println("done.");
  }

  static class smtp {
    private final static int smtp_port = 25;

    inetaddress mailhost;

    inetaddress localhost;

    bufferedreader in;

    printwriter out;

    public smtp(string hostthrows unknownhostexception {
      mailhost = inetaddress.getbyname(host);
      localhost = inetaddress.getlocalhost();
      system.out.println("mailhost = " + mailhost);
      system.out.println("localhost= " + localhost);
      system.out.println("smtp constructor done/n");
    }

    public boolean send(filereader msgfilereader, string from, string to)
        throws ioexception {
      socket smtppipe;
      inputstream inn;
      outputstream outt;
      bufferedreader msg;
      msg = new bufferedreader(msgfilereader);
      smtppipe = new socket(mailhost, smtp_port);
      if (smtppipe == null) {
        return false;
      }
      inn = smtppipe.getinputstream();
      outt = smtppipe.getoutputstream();
      in = new bufferedreader(new inputstreamreader(inn));
      out = new printwriter(new outputstreamwriter(outt)true);
      if (inn == null || outt == null) {
        system.out.println("failed to open streams to socket.");
        return false;
      }
      string initialid = in.readline();
      system.out.println(initialid);
      system.out.println("helo " + localhost.gethostname());
      out.println("helo " + localhost.gethostname());
      string welcome = in.readline();
      system.out.println(welcome);
      system.out.println("mail from:<" + from + ">");
      out.println("mail from:<" + from + ">");
      string senderok = in.readline();
      system.out.println(senderok);
      system.out.println("rcpt to:<" + to + ">");
      out.println("rcpt to:<" + to + ">");
      string recipientok = in.readline();
      system.out.println(recipientok);
      system.out.println("data");
      out.println("data");
      string line;
      while ((line = msg.readline()) != null) {
        out.println(line);
      }
      system.out.println(".");
      out.println(".");
      string acceptedok = in.readline();
      system.out.println(acceptedok);
      system.out.println("quit");
      out.println("quit");
      return true;
    }
  }
}

扫描关注微信公众号