Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/26: Рейтинг темы: голосов - 26, средняя оценка - 4.92
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 101

Просмотр сообщений POP3

29.08.2013, 16:24. Показов 4825. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! мне нужно создать что-то подобное на почтовый клиент, отправку сообщений реализовать удалось без проблем с помощью smtp, а вот загрузить принятые сообщения никак не получается, знаю что реализовать это возможно с помощью pop3 протокола, кто знает - буду очень признателен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2013, 16:24
Ответы с готовыми решениями:

Протокол pop3. Прием электронных сообщений
Добрый вечер, прошу помочь: Было задано написать простой почтовый клиент с принятием и отправлением сообщений. Возникли проблемы в...

Прием электронных сообщений, POP3, SSL/TLS
Добрый день, подскажите пожалуйста как реализовать прием писем с почты POP3 + SSL или TLS? Просто изменить порт на 995 не катит :-using...

Как работать с POP3 для получения сообщений с сервера?
???

5
 Аватар для zvoronz
273 / 241 / 56
Регистрация: 29.05.2012
Сообщений: 889
29.08.2013, 16:41
http://sourceforge.net/projects/systemnetpop3/
http://www.codeproject.com/Art... -a-C-Class
http://nansoft.ru/blog/csharp/2.html
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 101
30.08.2013, 09:46  [ТС]
вот нашел примерчик, в котором реализована работа с pop3, но там нет чтения сообщений, я пробовал добавить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 WriteBuffer = enc.GetBytes("RETR 4\r\n");
                netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
             try
                {
                    
                    int i = 0;
                    while (i<1)
                    {
                        if (strReader.ReadLine().IndexOf("Message") >= 0)
                            while (true)
                            {if (ListMessage.IndexOf("EndMessage") >= 0)
                                { i++;break;  }
                                ListMessage += strReader.ReadLine();
                                
                            } 
                    } 
                }
                catch { }
но это не помогло,текст сообщения, который мне нужно выдернуть:
Message:
1 maby this program working
2 downloading data
3 downloading source
4 есть ли проблемы с кодировкой?
EndMessage.
код программы:
C#
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Net.Sockets;
using System.IO;
using System.Windows.Forms;
 
namespace Pop3Check
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            TcpClient tcpClient = new TcpClient();
            tcpClient.Connect("mail.geekpedia.com", 110);
            NetworkStream netStrm = tcpClient.GetStream();
            System.IO.StreamReader strRead = new System.IO.StreamReader(netStrm);
            if (tcpClient.Connected)
            {
                MessageBox.Show("connected: " + strRead.ReadLine());
            }
            string login = "USER [email]support@geekpedia.com[/email]\r\n";
            byte[] WriteBuffer = new byte[1024];
            ASCIIEncoding en = new System.Text.ASCIIEncoding();
            WriteBuffer = en.GetBytes(login);
            netStrm.Write(WriteBuffer, 0, WriteBuffer.Length);
            MessageBox.Show("response: " + strR[OFF]ead.ReadLine());
            login = "PASS c0d3supp\r\n";
            WriteBuffer = en.GetBytes(login);
            netStrm.Write(WriteBuffer, 0, WriteBuffer.Length);
            MessageBox.Show("response: " + strRead.ReadLine());
 
            login = "LIST\r\n";
            WriteBuffer = en.GetBytes(login);
            netStrm.Write(WriteBuffer, 0, WriteBu[/OFF]ffer.Length);
            string resp;
            while (true)
            {
                resp = strRead.ReadLine();
                MessageBox.Show("could resp be .\r\n " + resp);
                if (resp == ".")
                {
                    MessageBox.Show("yes");
                    break;
                }
                else
                {
                    MessageBox.Show("list: " + resp);
                    continue;
                }
            }
 
            // Disconnect from the POP3 server
            login = "QUIT\r\n";
            WriteBuffer = en.GetBytes(login);
            netStrm.Write(WriteBuffer, 0, WriteBuffer.Length);
            MessageBox.Show("response: " + strRead.ReadLine());
        }
 
        private void btnConnect_Click(object sender, EventArgs e)
        {
            // Create a TCP client for a TCP connection
            TcpClient tcpClient = new TcpClient();
            txtLog.Text = "I say:\r\nConnect me to " + txtServer.Text + ":" + txtPort.Text + "\r\n\r\n";
            // Connect this TCP client to the server IP/name and port specified in the form
            tcpClient.Connect(txtServer.Text, Convert.ToInt32(txtPort.Text));
            // Create a network stream to retrieve data from the TCP client
            NetworkStream netStream = tcpClient.GetStream();
            // We need a stream reader to be able to read the network stream
            System.IO.StreamReader strReader = new System.IO.StreamReader(netStream);
            // If the connection was made successfully
            if (tcpClient.Connected)
            {
                txtLog.Text += "Server says:\r\n" + strReader.ReadLine() + "\r\n\r\n";
                // Buffer to which we're going to write the commands
                byte[] WriteBuffer = new byte[1024];
                // We're passing ASCII characters
                ASCIIEncoding enc = new System.Text.ASCIIEncoding();
                // Pass the username to the server
                WriteBuffer = enc.GetBytes("USER " + txtUser.Text + "\r\n");
                txtLog.Text += "I say:\r\nHere's the username: " + txtUser.Text + "\r\n\r\n";
                netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
                txtLog.Text += "Server says\r\n" + strReader.ReadLine() + "\r\n\r\n";
                // Pass the password to the server
                WriteBuffer = enc.GetBytes("PASS " + txtPass.Text + "\r\n");
                txtLog.Text += "I say:\r\nHere's the password: " + txtPass.Text + "\r\n\r\n";
                netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
                txtLog.Text += "Server says:\r\n" + strReader.ReadLine() + "\r\n\r\n";
                // Now that we are (probably) authenticated, list the messages
                WriteBuffer = enc.GetBytes("LIST\r\n");
                txtLog.Text += "I say:\r\nPlease list the messages\r\n\r\n";
                netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
                string ListMessage;
                while (true)
                {
                    ListMessage = strReader.ReadLine();
                    if (ListMessage == ".")
                    {
                        // It's the last message so exit the loop and continue
                        break;
                    }
                    else
                    {
                        // List the message
                        txtLog.Text += "Server says:\r\n" + ListMessage + "\r\n\r\n";
                        continue;
                    }
                }
                txtLog.Text += "I say:\r\nThanks, we will disconnect now\r\n\r\n";
                WriteBuffer = enc.GetBytes("QUIT\r\n");
                netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
                txtLog.Text += "Server says:\r\n" + strReader.ReadLine();
            }
        }
    }
}
Вложения
Тип файла: zip Pop3Check.zip (36.2 Кб, 63 просмотров)
0
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 101
01.09.2013, 00:39  [ТС]
может кто подскажет, возможно это в этом примере? Я уже всю голову поломал с чтением сообщений(((
0
53 / 53 / 16
Регистрация: 25.02.2013
Сообщений: 171
01.09.2013, 09:01
http://sourceforge.net/projects/hpop/
открытая библиотека с примером приложения
с помощью нее делал
1
5 / 5 / 0
Регистрация: 21.10.2012
Сообщений: 101
01.09.2013, 12:07  [ТС]
огого))) спасибо, я и раньше ее видел и даже качал, но на примеры в цс не особо смотрел, все получилось, буду дальше двигать)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2013, 12:07
Помогаю со студенческими работами здесь

POP3 чтение сообщений
Как получить текст сообщения, все остальное что надо вроде вытащил. Вот код. var client = new OpenPop.Pop3.Pop3Client(); ...

Программа для приема сообщений по POP3
Нужно написать программульку для приема сообщений по POP3.

Lotus почта есть, а по Pop3 - 0 новых сообщений!
Создал нового пользователя после апгрейда сервера из R5 в 6.5.5. Старые пользователи как работали нормально с POP3, так и работают- почта...

Загрузка всех имеющихся на сервере сообщений в папку с приложением (POP3)
Хочу наладить загрузку всех имеющихся на сервере сообщений в папку с приложением, написала следующий код. НО почему-то загружаются пустые...

Необходимо разработать программу для получения почтовых сообщений по протоколу POP3
Здравствуйте. Помогите, пожалуйста, реализовать. Спасибо. Необходимо разработать программу для получения почтовых сообщений по...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru