`
mengdejun
  • 浏览: 408259 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java socket发送邮件

    博客分类:
  • Php
阅读更多
package org.whsvc.pop.mail;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.Vector;

public class JMail implements Send {
private Socket client = null;
private String from_address = null, account = null, password = null,to_address;
private StringBuffer body = new StringBuffer();
private PrintWriter out = null;
private BufferedReader in = null;
private String date = new Date().toLocaleString();
private String from_name = null, to_name = null, subject = null,
    content_Type = "Content-Type: text/plain;charset=\"GB2312\"";
private boolean isAuthLogin = true;
private String serverName = null;
private int port = 25;

public boolean destory() throws Exception {
   client.close();
   in.close();
   out.close();
   response("Done");
   return true;

}

public JMail(String from_address, String account, String password,
    String serverName) {
   super();
   this.from_address = from_address;
   this.account = account;
   this.password = password;
   this.serverName = serverName;
   this.from_name = this.from_address;

}

public JMail() {

}

public int getPort() {
   return port;
}

public void setPort(int port) {
   this.port = port;
}

public String getServerName() {
   return serverName;
}

public void setServerName(String serverName) {
   this.serverName = serverName;
}

public String getFrom_address() {
   return from_address;
}

public void setFrom_address(String from_address) {
   this.from_address = from_address;
}


public String getTo_address() {
   return to_address;
}

public void setTo_address(String to_address) {
   this.to_address = to_address;
}

public String getAccount() {
   return account;
}

public void setAccount(String account) {
   this.account = account;
}

public String getPassword() {
   return password;
}

public void setPassword(String password) {
   this.password = password;
}

public void addBody(String content) {
   if (isAuthLogin) {

body.append("From: <" + this.from_name + ">\r\n");
    body.append("To: <" + this.to_name + ">\r\n");
    body.append("Subject: " + this.subject + "\r\n");
    body.append(this.content_Type + "\r\n");
    body.append("\r\n");
    body.append(content + "\r\n");
    body.append(".\r\n");

   }
}

public String getDate() {
   return date;
}

public void setDate(String date) {
   this.date = date;
}

public String getFrom_name() {
   return from_name;
}

public void setFrom_name(String from_name) {
   this.from_name = from_name;
}

public String getTo_name() {
   return to_name;
}

public void setTo_name(String to_name) {
   this.to_name = to_name;
}

public String getSubject() {
   return subject;
}

public void setSubject(String subject) {
   this.subject = subject;
}

public String getContent_Type() {
   return content_Type;
}

public void setContent_Type(String content_Type) {
   this.content_Type = content_Type;
}

public boolean isAuthLogin() {
   return (isAuthLogin != (this.account == null && this.password == null
     && this.from_address == null && this.to_address==null
     && this.serverName == null && this.body.length() > 1));
}

public void send() throws Exception {
   if (parse()) {
    out.println("QUIT");
   }
}

private boolean parse() {
   boolean isReady = false;
   if (this.account == null && this.password == null
     && this.from_address == null && this.to_address ==null
     && this.serverName == null && this.body.length() > 1) {
    isAuthLogin = false;
    isReady = false;
    return isReady;
   }
   try {
    client = new Socket(this.serverName, this.port);
    out = new PrintWriter(client.getOutputStream());
    in = new BufferedReader(new InputStreamReader(client
      .getInputStream()));
    response(in.readLine());
    out.println("ehlo MDJ");
    out.flush();
    response(in.readLine());
    out.println("AUTH LOGIN");
    out.flush();
    response(in.readLine());
    response(in.readLine());
    response(in.readLine());
    response(in.readLine());
    out.println(Encode(this.account));
    out.flush();
    response(in.readLine());
    out.println(Encode(this.password));
    out.flush();
    response(in.readLine());
    out.println("mail from: <"+getFrom_address()+">");
    out.flush();
    response(in.readLine());
    out.println("rcpt to: <"+getTo_address()+">");
    out.flush();
    response(in.readLine());
    out.println("data");
    out.flush();
    response(in.readLine());
    /**
    * out.print("from: <"+this.from_address+">\n");
    * out.print("to: <"+this.from_name+">");
    * out.print("Subject: <"+this.from_name+">\n"); out.print("\n\n");
    */
    out.println(body.toString());
    out.flush();
    response(in.readLine());
    response(in.readLine());
    // out.println("<CRLF>.<CRLF>");
    isReady = true;
   } catch (UnknownHostException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
   return isReady;
}

public void response(String msg) {
   System.out.println(msg);

}

public String Encode(String s) {
   String old = null;
   if (s == "" || s.equals("")) {
    old = "";
   }
   try {
    old = new sun.misc.BASE64Encoder().encode(s.getBytes());
   } catch (Exception e) {
    e.printStackTrace();
   }
   return old;
}

}


Test.java

package org.whsvc.pop.mail;

import java.util.Date;

public class Test {

/**
* @param args
*/
public static void main(String[] args)
{
   JMail mail=new JMail();
   mail.setServerName("smtp.163.com");
   mail.setDate(new Date().toString());
   mail.setAccount("mengdejun_520");
   mail.setFrom_address("mengdejun_520@163.com");
   mail.setTo_address("280759843@qq.com");
   mail.setPassword("*****");
   mail.setFrom_name("mengdejun_520@163.com");
   mail.setPort(25);
   mail.setSubject("test");
   mail.setTo_name("mengdejun_168@126.com");
   mail.addBody("你好吗?java编程!"+new Date());
   try 
   {
    mail.send();
    mail.destory();
   } catch (Exception e) {
    e.printStackTrace();
   }
  
}


}


 

分享到:
评论

相关推荐

    Java Socket 实现SMTP邮件发送,支持SSL/TSL

    在本案例中,我们将关注如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并支持SSL(Secure Sockets Layer)和TLS(Transport Layer Security)安全协议。 SMTP是一种互联网标准,用于在...

    用Java Socket实现SMTP邮件发送

    SMTP(Simple Mail Transfer Protocol)是一种用于发送电子邮件的标准协议,而使用Java Socket来实现SMTP邮件发送,可以让我们在Java程序中直接进行邮件的传输。 首先,我们需要了解SMTP的工作流程。SMTP服务器负责...

    java socket实现smtp发送邮件,支持SSL

    Java Socket 实现 SMTP 发送邮件是一项常见的编程任务,尤其在自动化通知、系统间通信或用户交互中非常有用。SMTP(Simple Mail Transfer Protocol)是互联网上用于传输电子邮件的标准协议,而Java Socket则是Java...

    Java通过Socket发送邮件

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

    java socket编程发送邮件

    本程序用socket编程实现发送邮件的功能,并测试成功

    Java socket 代理邮件发送程序

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

    java socket发送SMTP邮件,支持SSL,支持发附件,抄送且发送的邮件标题内容都无乱码!

    java socket发送SMTP邮件,支持SSL,支持发附件,抄送且发送的邮件标题内容都无乱码!

    java socket 实现SMTP协议 发送邮件.docx

    Java Socket 实现 SMTP 协议发送邮件 Java Socket 是 Java 语言中用于实现网络编程的 API,通过 Socket,可以实现与远程服务器的通信。在这里,我们将使用 Java Socket 实现 SMTP 协议来发送邮件。 SMTP 协议简介 ...

    用java socket实现smtp邮件发送,支持SSL

    在本案例中,我们将讨论如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并支持SSL(Secure Sockets Layer)或TLS(Transport Layer Security)安全协议。 SMTP是一种互联网标准,用于在...

    java 纯Socket发送邮件

    Java纯Socket发送邮件的知识点涉及了Java网络编程和电子邮件协议,特别是SMTP(Simple Mail Transfer Protocol)。在Java中,我们可以使用Socket类直接与SMTP服务器通信,实现邮件的发送。以下是对这个主题的详细...

    JAVA Socket 经典教程

    通过学习Java Socket编程,开发者可以构建功能丰富的网络应用程序,如FTP服务器、邮件系统、实时通信软件等。实践是检验理论的最好方式,动手编写Socket程序,不断尝试和调试,将有助于深化理解和提升技能。

    Java Socket Email 发送接收

    Java Socket电子邮件发送与接收是基于Java网络编程技术实现的一种通信方式,主要涉及到Java的Socket类以及Email相关的API。本项目是一个课程项目,开发者通过几天的努力完成了一个具备图形用户界面(GUI)的邮件系统...

    基于java的简单socket邮件发送

    在Java中,我们需要遵循SMTP命令的规范来与服务器交互,例如,发送"HELO"命令来初始化会话,"MAIL FROM:"指定发件人,"RCPT TO:"指定收件人,最后是"DATA"命令来发送邮件内容。 4. **关闭连接**:完成邮件发送后,...

    java socket 邮件客户端

    Java Socket邮件客户端是一种基于Java编程语言,利用Socket通信协议实现的邮件收发工具。它能够帮助开发者通过编程接口与邮件服务器进行交互,实现发送、接收邮件的功能。在本项目中,"LaserMail.2.03BLOOD"可能是这...

    Java Socket Mail 源代码

    总之,使用Java Socket发送SMTP邮件涉及网络编程基础、SMTP协议理解以及可能的邮件API(如JavaMail)。通过源代码学习,你可以深入理解邮件发送的底层实现,这对于开发自定义的邮件服务或理解邮件系统的工作原理非常...

    利用socket发送接收邮件(转)

    在IT行业中,网络通信是不可或缺...总的来说,利用Socket发送和接收邮件涉及到网络编程、邮件协议、Java的I/O和特定的Java邮件API。这不仅有助于开发自定义的邮件客户端,也有助于理解电子邮件在网络传输中的工作原理。

    基于socket的邮件发送程序(java编写)

    基于Socket的邮件发送程序(Java编写) 在现代通信中,电子邮件是不可或缺的一部分,而Java作为一种广泛应用的编程语言,提供了多种方式来实现邮件的发送。本文将深入探讨如何使用Java的Socket编程实现SMTP(简单...

    java基于socket 利用1邮件服务器发送邮件

    Java基于Socket利用163邮件服务器发送邮件是一个常见的编程任务,尤其在自动化通知、系统报警或者用户服务中广泛应用。在这个项目中,我们将深入探讨如何使用Java的JavaMail API和Socket通信来实现这一功能。 首先...

    Java编程实现邮件发送(含身份验证)

    本教程将深入讲解如何利用Java实现邮件的发送,并包含身份验证的过程,这对于自动化任务、通知系统或者任何需要通过电子邮件进行通信的应用来说是至关重要的。 首先,我们来了解计算机网络中的Socket编程。Socket是...

Global site tag (gtag.js) - Google Analytics