Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
12 / 12 / 1
Регистрация: 05.04.2012
Сообщений: 127
1

Обработка полученного сообщения в почтовом клиенте

16.11.2013, 13:12. Показов 676. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникла проблема, при обработке сообщения, которое я получаю с почты в формате MIME с помощью протокола POP3. А точнее, я не могу понять, почему мой класс содержит пустые строки, да и вообще не желает обрабатывать что-либо.
Класс сообщений, который я написал. Ничего хитрого или интересного. Содержит пару полей и методы получения. Необходим, что бы хранить в нем уже "обработанное" сообщение.
Использую библиотеку JavaMail API 1.4.7.
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.io.Serializable;
public class MyMessage implements Serializable {
    private String subject;
    private String from;
    private String to;
    private String body;
    private String date;
    private int msgID;
 
    public MyMessage(String subject, String from, String to, String body, String date, int msgID) {
        this.subject = subject;
        this.from = from;
        this.to = to;
        this.body = body;
        this.date = date;
        this.msgID = msgID;
    }
 
    public String getSubject() {
        return subject;
    }
 
    public String getFrom() {
        return from;
    }
 
    public String getTo() {
        return to;
    }
 
    public String getBody() {
        return body;
    }
 
    public String getDate() {
        return date;
    }
 
    public int getMsgID() {
        return msgID;
    }
}

Основной класс, выводит все в консоль, поскольку только учусь работать с сетью и в GUI пока нет особого резона.
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeUtility;
import java.util.LinkedList;
import java.util.Properties;
 
public class MainClass {
 
    public static void main(String[] args) throws Exception {
 
        Properties props = new Properties();
        String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
        props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.pop3.socketFactory.fallback", "false");
        props.setProperty("mail.pop3.port", "995");
        props.setProperty("mail.pop3.socketFactory.port", "995");
 
          /*
        String host = "pop.gmail.com";
        String username = "*****";
        String password = "*****";
        String provider = "pop3";
                     */
        String host = "pop.rambler.ru";
        String username = "*****";
        String password = "*****";
        String provider = "pop3";
        Session session = Session.getDefaultInstance(props, null);
        Store store = session.getStore(provider);
        store.connect(host, username, password);
 
        Folder inbox = store.getFolder("INBOX");
        if (inbox == null) {
            System.out.println("No INBOX");
            System.exit(1);
        }
        inbox.open(Folder.READ_ONLY);
        //Получаем почту и кучу заковырок (сами сообщения не обработаны)
        Message[] messages = inbox.getMessages();
        for (int i = 0; i < messages.length; i++) {
            System.out.println("Message " + (i + 1));
            messages[i].writeTo(System.out);
        }
        System.out.println(messages.length);
        LinkedList<MyMessage> myMessages = new LinkedList<MyMessage>();
        for (int i = 0; i < messages.length; i++) {
            if (messages[i].isMimeType("text/plain"))   {
                MyMessage message = new MyMessage(MimeUtility.decodeText(messages[i].getSubject()),messages[i].getFrom().toString(),
                null,messages[i].getContent().toString(),messages[i].getSentDate().toString(),messages[i].getMessageNumber());
            myMessages.add(message);
            }
        }
        System.out.println(myMessages.size());
 
        myMessages.getFirst().getSubject().toString();
        inbox.close(false);
        store.close();
    }
}

Вместо звездочек ес-но введены корректные логин и пароль. Так же я получаю ответ, но он необработанный .
P.s. Я изначально знаю, что файлы не содержат всяких вложений и прочих штук, поэтому подобное событие не обрабатывается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2013, 13:12
Ответы с готовыми решениями:

Протокол в почтовом клиенте SMTP
Здравствуйте. есть почтовый клиент написанный на C#. Работает норм. но весь процесс почтовой сессии...

Две учётки в почтовом клиенте
Машина получает почту с двух разных серверов как пример возмём 10.10.10.10 и 20.20.20.20. Завести...

Получение писем в почтовом клиенте, POP3
Здравствуйте я в этой области новичок и прошу помощи, у меня такая проблема, пишу почтовый клиент в...

некорректное отображение полей в почтовом клиенте
Добрый день, коллеги! Имеется такая проблема: почтовый клиент Lotus 8.5.1 FP3, система win 7...

0
16.11.2013, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2013, 13:12
Помогаю со студенческими работами здесь

Что использовать в почтовом клиенте для списка писем???
У меня такая проблемма: Тема курсовой у меня по Delphi - &quot;Почтовый клиент&quot;. Какой компонент лучше...

Очень часто слетает пароль в почтовом клиенте. (Outlook Express и Windows Live)
Добрый день! Подскажите, пожалуйста. Очен часто слетает пароль в почтовых клиентах Outlook...

Метод для получения последнего полученного сообщения
Искал этот метод в messages ничего не нашел нужного,в notifications,тоже пусто,а мне нужно вытащить...

Фиксированный размер буфера для приема сообщения на клиенте (UDP)
Программа условная (лабораторная работа с использованием библиотеки boost). Клиент вводит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru