2010-11-29 13 views
1

私は電子メールへの添付ファイルですか?

public boolean sendmail (String host, String to, String from, 
String message, String subject, String cc){ 
     try 
     { 
     //Created TCP Connection to server 
     Socket s = new Socket(host, 25); 
     //Open our streams. 
     InputStream inStream = s.getInputStream(); 
     OutputStream outStream = s.getOutputStream(); 
     in = new Scanner(inStream); 
     out = new PrintWriter(outStream, true); 
     //get my info! 
     String hostName = InetAddress.getLocalHost().getHostName(); 
     //e-mail time! 

     receive(); 
     send("HELO" + host); 
     receive(); 
     send("MAIL FROM: <" + from + "\n"); 
     receive(); 
     send("RCPT TO: <" + to + "\n"); 
     receive(); 
     send("DATA"); 
     receive(); 
     send("DATA"); 
     receive(); 
     //Make sure to close the everything again!! 
     out.close(); 
     in.close(); 
     s.close(); 
     return true; 
     } 
     catch (Exception e) 
     { 
      appendtolog("ERROR: " + e); 
      return false; 
     } 
    } 

private void send(String s) throws IOException{ 
    appendtolog(s); 
    out.print(s.replaceAll("\n", "\r\n")); 
    out.print("\r\n"); 
    out.flush(); 
} 

private void receive(){ 
    String line = in.nextLine(); 
    appendtolog(line); 
} 

がちょうどそこにどこかに添付ファイルを入れて、それは可能です...以下のようなものを持っていますか?私はそれが明らかに可能である

// Set the email attachment file 
MimeBodyPart attachmentPart = new MimeBodyPart(); 
FileDataSource fileDataSource = new FileDataSource(filename) { 
@Override 
public String getContentType() { 
    return "application/octet-stream"; 
} 
}; 
attachmentPart.setDataHandler(new DataHandler(fileDataSource)); 
    attachmentPart.setFileName(filename); 
+2

なぜJava Mail APIを使用しないのですか? –

+2

*「APIを使用してこれを行う方法があることは分かっていますが、添付ファイルの機能を壊す方法があるのか​​と疑問に思っています。」*はい、もちろん可能です。独自のオペレーティングシステムを作成することもできます。質問は**になる必要があります**なぜ**? Java Mail APIは使い方が簡単で、よくテストされており、よく文書化されています... SMTPの機能を学ぶために何かしていたら分かりますが、 'MimeBodyPart'そして明らかにそうではありません... –

+0

@TJ:私には別のAPIを使用していなければなりません... JavaMailは豚です。独自のSMTP/MIMEクライアントを作成するよりも簡単ですが、心に留めてください。 – skaffman

答えて

2

これについては、基本に戻ってRFCを読むことをおすすめします。

インターネットメッセージフォーマット http://www.faqs.org/rfcs/rfc2822.html

多目的インターネットメール拡張(MIME)第一部:インターネットメッセージ本体のフォーマット http://www.faqs.org/rfcs/rfc2045.html

これらは、多かれ少なかれ、まっすぐ進むされているいくつかの不可解なものがそこにありますが、あなたはあなたが必要なものを取り出すことができるはずです。

私はあなたが上に持っているコミュニケーションをできるだけ体(メッセージの内容)と分けようと勧めています。そうしないと、水が濁るでしょう。

希望に役立ちます。

1

...そこに多くのAPIを使用してこれを行う方法ですが、私はそこに私はそれに添付するための機能をハンマーすることができる方法を思ったんだけどか何かなどを使用している実感が、私は」 dでは、SMTPプロトコルの詳細を扱う代わりに、JavaMail APIを使用することをお勧めします。あなたが学生の運動を実施していない限り正しいです。

+1

*「APIを使ってこれを行う方法があることは分かっていますが、添付ファイルの機能をハンマーでこなす方法があるのでしょうか?」明らかに彼はこの答えを望まない。 (それはナッツですが...) –

関連する問題