2011-10-09 34 views
1

我想发送电子邮件使用Java套接字,但似乎无法发送电子邮件 (我不使用Java的邮件API,我只是想用套接字发送电子邮件)。请告诉我在哪里我做错了并修改代码...我会很高兴的任何帮助...感谢发送电子邮件使用Java套接字

下面是我的代码

import java.io.*; 
import java.net.*; 
class MailingClient { 

    public void smtp(String command) throws UnknownHostException, IOException { 

     Socket socket=new Socket("smtp.gmail.com",465); 

     BufferedReader br= new BufferedReader(new InputStreamReader(socket.getInputStream())); 
     br.readLine(); 

     OutputStream os = socket.getOutputStream(); 
     os.write(command.getBytes()); 
     smtp("HELLO " + "[email protected]"); 
     smtp("MAIL FROM: "+ "[email protected]"); 
     smtp("DATA"); 
     smtp("yourContent"); 

    } 
    public static void main(String argv[]) throws Exception 
    { 


     MailingClient c=new MailingClient(); 
     c.smtp("HELO"); 


    } 
} 
+4

这是你的同学吗? http://stackoverflow.com/questions/7703059/send-mail-to-gmail-account今天之前提出这个问题。 – BalusC

+0

嗯不知道... – user841852

+0

我必须同意。这听起来像是一个家庭作业问题。 – atrain

回答

1

一般来说这应该工作,你“只是”必须实现你自己整个SMTP protocol。在Wikipedia上有介绍。我真的会为此使用一个库。

1

我会说你应该为此使用一个库。如果这是一个真正的gmail帐户,则需要进行身份验证,因为gmail不允许匿名smtp。我不知道套接字的java细节,但总的来说,你应该使用套接字来做更多的事情,而不仅仅是创建套接字。 unix网络编程部分我涵盖了socket的使用。即邮件服务器向您的请求发送一个答案,您也可以从套接字对中读取这些答案。