Автоответчик Javamail для моего домена - PullRequest
0 голосов
/ 26 марта 2012

Автоответчик Javamail

Я действительно хотел бы автоматически ответить на электронное письмо, используя Javamail.

Я уже использую адрес электронной почты своего домена для отправки кода подтверждения во время регистрации.

Что мне сейчас нужно, так это когда электронное письмо отправляется на choices@mydomain.com. Я могу автоответить с помощью обычного письма на основе анализа и чтения полученного письма.Было бы неплохо включить имя пользователя в ответ.

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 23 февраля 2015

Приятно подумать, Джон, у меня была та же проблема в моем проекте, в JSP, и я решил ее, как показано ниже, с помощью класса java, такого как 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="username@gmail.com";
        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;
}

Вы можете получить имя пользователя из базы данных и предоставить егокак сообщение в этой программе.

1 голос
/ 26 марта 2012

Этот самый простой подход заключается в написании программы, которая отслеживает ваш почтовый ящик, создает и отправляет ответ на основе каждого сообщения, которое он видит.Пакет загрузки JavaMail включает в себя пример программы monitor.java, которая поможет вам начать работу.Будет полезен метод MimeMessage.reply.Вы должны будете заполнить содержание ответного сообщения самостоятельно.Различные другие примеры программ JavaMail покажут вам, как отправить сообщение после его создания.

И не забудьте прочитать FAQ по JavaMail .

...