2012-03-25 12 views
0

Javamail自動返信私のドメインのJavamail自動返信

私は本当にJavamailを使って電子メールに自動返信したいと思います。

登録時に既にドメインメールを使用して確認コードを送信しています。

メールが[email protected]に送信されるときに必要なのは、受信メールを解析して読むことに基づいて、缶詰メールを自動返信できます。返信にユーザー名を含めるとよいでしょう。

ありがとうございました!

+0

環境について詳しく教えてください(Webアプリケーション、デスクトップアプリケーション、技術、J2EE/AppEngine?) –

答えて

1

この最も簡単な方法は、メールボックスを監視し、表示されるすべてのメッセージに基づいて返信を作成して送信するプログラムを作成することです。 JavaMailのダウンロードバンドルには、開始するサンプルプログラムmonitor.javaが含まれています。 MimeMessage.replyメソッドが役立ちます。返信メッセージの内容を自分で記入する必要があります。他のさまざまなJavaMailサンプルプログラムでは、作成したメッセージをどのように送信するかを示します。

JavaMail FAQを必ずお読みください。

+0

お返事ありがとうございます。当初はApache、Tomcat、JDK 1.7を使ってLinuxサーバー上でJavaメールを使ったWebアプリケーションとしてWebサーバーから実行したかったのです。今は、Windows 7のマシンでデスクトップアプリケーションを実行して、モニターがオンラインのGmailアカウントを使用できるようにすることがより柔軟になると思う。電子メールを受信するとすぐに返信できることが重要です。これは、デスクトップアプリケーションから行うことができますか遅れがありますか?みんなありがとう。 – John

+0

ウェブアプリケーションは通常、ウェブリクエストにのみ応答するため、ここではあまりマッチしません。あなたは、メールボックスを見ている別のアプリケーションやスレッドが他のユーザーの要求なしで必要です。 「デスクトップ」またはスタンドアロンのアプリはこれで問題なく動作します。新しいメッセージが到着したときと、あなたのアプリがそれをあなたのメールサーバーに多く依存すると見なすときの間に、どんな遅延があるかもしれません。ああ、あなたはIMAPを使ってあなたのメールサーバーと話をしていると思います。 POP3を使用すると、別の問題が発生します。 –

+0

素敵な返​​信に感謝します.Javamailバンドルは素晴らしいです。もう少し質問がありました。私はJDialogを使ってパスワードを取得し、引数配列をmonitor.main(args)で渡します。 1)ログインダイアログが消えることはありません.2)JMenuItem Exitからfolder.addMessageCountListenerを強制終了する呼び出しは何ですか?ほとんど完了:) – John

0

ジョンを考えニース、私はJSPで、私のプロジェクトで同じ問題を抱えていたとReadingMail

package com;import java.io.*;import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.InternetAddress; 
public class ReadingMail { 
public static void main(String args[]) throws Exception { 
    try{ 
     String host = "pop.gmail.com"; 
     String user="username"; 
     String password="password"; 
    // Get system properties 
    Properties properties = System.getProperties(); 

    // Get the default Session object. 
    Session session = Session.getDefaultInstance(properties, null); 

    // Get a Store object that implements the specified protocol. 
    Store store = session.getStore("pop3s"); 

    //Connect to the current host using the specified username and password. 
    store.connect(host, user, password); 

    //Create a Folder object corresponding to the given name. 
    Folder folder = store.getFolder("inbox"); 

    // Open the Folder. 
    folder.open(Folder.READ_ONLY); 

    Message[] message = folder.getMessages(); 

    // Display message. 
    for (int i = 0; i < message.length; i++) { 

     System.out.println("------------ Message " + (i + 1) + " ------------"); 

     System.out.println("SentDate : " + message[i].getSentDate()); 
     System.out.println("From : " + message[i].getFrom()[0]); 
     System.out.println("Subject : " + message[i].getSubject()); 
     System.out.print("Message : "); 

     InputStream stream = message[i].getInputStream(); 
     while (stream.available() != 0) { 
      System.out.print((char) stream.read()); 
     } 
     System.out.println(); 
    } 

    folder.close(true); 
    store.close(); 
    } 
    catch(Exception e) 
    { 
     System.out.println(e); 
    } 
} 
public String Manu() 
{ 
    String email=null; 
    try{ 
     String host = "pop.gmail.com"; 
//  String user = "xyz"; 
//  String password = "12345"; 
     String user="[email protected]"; 
     String password="password"; 
    // Get system properties 
    Properties properties = System.getProperties(); 

    // Get the default Session object. 
    Session session = Session.getDefaultInstance(properties, null); 

    // Get a Store object that implements the specified protocol. 
    Store store = session.getStore("pop3s"); 

    //Connect to the current host using the specified username and password. 
    store.connect(host, user, password); 

    //Create a Folder object corresponding to the given name. 
    Folder folder = store.getFolder("inbox"); 

    // Open the Folder. 
    folder.open(Folder.READ_ONLY); 

    Message[] message = folder.getMessages(); 




    // Display message. 
    for (int i = 0; i < message.length; i++) { 

     System.out.println("------------ Message " + (i + 1) + " ------------"); 

     // System.out.println("SentDate : " + message[i].getSentDate()); 
     //System.out.println("From : " + message[i].getFrom()[0]); 
     email=message[i].getFrom()[0]==null?null:((InternetAddress) message[i].getFrom()[0]).getAddress(); 
     System.out.println("From addrss is..........................."+email); 
     // System.out.println("Subject : " + message[i].getSubject()); 
     System.out.print("Message : "); 

     InputStream stream = message[i].getInputStream(); 
     while (stream.available() != 0) { 
      System.out.print((char) stream.read()); 
     } 
     System.out.println(); 
    } 

    folder.close(true); 
    store.close(); 
    } 
    catch(Exception e) 
    { 
     System.out.println(e); 
    } 
    return email; 
} 

としてJavaクラスを以下に示すように、私はあなたがデータベースからユーザー名を取得してそれを提供することができ、それを解決しましたこのプログラムのメッセージ。

関連する問題