Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
1

Получение электронного письма

26.06.2018, 23:26. Показов 2157. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите. Я узнал, как програмно отправлять электронное письмо через яндекс почту, а как просмотреть хотя бы последнее письмо, я информации не нашел. Пожалуста, предлагайте желательно варианты без скачивания сторонних библиотек. Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2018, 23:26
Ответы с готовыми решениями:

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

Получение письма гугл почты
Всем привет. Задача такая: надо принять сообщение с почты гугл. От определенного отправителя, и с...

Получение html-версии электронного письма
Доброго времени суток :) Такая проблема, получаю в мемо текст последнего письма с почты по pop3...

Отправка электронного письма.
Собственно, как отправить эл. письмо, например с подтверждением регистрации? Спасибо.

13
1535 / 1497 / 324
Регистрация: 03.10.2012
Сообщений: 1,537
27.06.2018, 11:06 2
Лучший ответ Сообщение было отмечено konstantin0214 как решение

Решение

konstantin0214,
Приём писем с почты
2
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
27.06.2018, 11:52  [ТС] 3
MrCrown, такой способ я пытался провернуть с яндекс почтой ( server: pop.yandex.ru, IP: 93.158.134.37, port: 995). Соединение устанавливается, но при отправке запроса на сервер (например имени пользователя), ответ не приходит.
0
Лень — мое второе и
3220 / 2410 / 685
Регистрация: 28.11.2014
Сообщений: 3,597
Записей в блоге: 3
27.06.2018, 12:45 4
konstantin0214, проверьте ответ после подключения
0
1535 / 1497 / 324
Регистрация: 03.10.2012
Сообщений: 1,537
27.06.2018, 13:37 5
konstantin0214, возможные проблемы:
1. Сервер укажите как "pop3.yandex.ru"
2. В настройках яндекс почты разрешите доступ к почтовому ящику, для почтовых клиентов, по протоколу POP3 для входящих.

Почта > Все настройки > Почтовые программы
2
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
27.06.2018, 16:37  [ТС] 6
Orlangur1991, если вы имеете в виду, проверить, что пришлет сервер, после подключения к нему,то я так сделал, но при компиляции все просто виснет.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            client = New Sockets.TcpClient("213.180.204.37", 995)
            TextBox3.Text = "соединение установлено"
        Catch ex As Exception
            TextBox3.Text = "соединение не установленно"
            Return
        End Try
        nstr = client.GetStream
        read = New IO.StreamReader(nstr, System.Text.Encoding.ASCII, True)
        write = New IO.StreamWriter(nstr)
        otvet = read.ReadLine()
        TextBox3.Text = otvet
    End Sub
0
Лень — мое второе и
3220 / 2410 / 685
Регистрация: 28.11.2014
Сообщений: 3,597
Записей в блоге: 3
27.06.2018, 16:46 7
Лучший ответ Сообщение было отмечено konstantin0214 как решение

Решение

konstantin0214, посмотрите последний пост в данной теме Приём писем с почты, там используется SslStream
1
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
27.06.2018, 18:01  [ТС] 8
Orlangur1991, оказывается не все так просто:
VB.NET
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
Imports System.Net
Imports System.Net.Security
 
Public Class Form1
    Dim client As Sockets.TcpClient
    Dim read As IO.StreamReader
    Dim write As IO.StreamWriter
    Dim nstr As Security.SslStream
    Dim otvet As String
    Dim endpoint As Net.IPEndPoint
    'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '    write.WriteLine("User " & "[" & TextBox1.Text & "]" & Chr(13) & Chr(10))
    '    write.Flush()
    '    otvet = read.ReadLine()
    '    TextBox3.Text = otvet
    'End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            client = New Sockets.TcpClient("213.180.204.37", 995)
            TextBox3.Text = "соединение установлено"
        Catch ex As Exception
            TextBox3.Text = "соединение не установленно"
            Return
        End Try
        nstr = New SslStream(client.GetStream)
        read = New IO.StreamReader(nstr, System.Text.Encoding.ASCII, True)
        write = New IO.StreamWriter(nstr)
        otvet = read.ReadLine()
        TextBox3.Text = otvet
    End Sub
End Class
На 26-й строчке
VB.NET
26
 read = New IO.StreamReader(nstr, System.Text.Encoding.ASCII, True)
возникает ошибка: ArgumentException. Поток был недоступен для чтения.
0
1535 / 1497 / 324
Регистрация: 03.10.2012
Сообщений: 1,537
27.06.2018, 19:04 9
Лучший ответ Сообщение было отмечено konstantin0214 как решение

Решение

Цитата Сообщение от konstantin0214 Посмотреть сообщение
возникает ошибка: ArgumentException. Поток был недоступен для чтения.
konstantin0214,
скорее всего, это из за того, что в вашем коде вы не проходите аутенфикацию. Сделайте все в точности так, как в теме, которую вам показали, учитывая рекомендацииOrlangur1991. Я попробовал, всё работает.
VB.NET
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
Imports System.Net.Security
Imports System.Text
 
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim client As Net.Sockets.TcpClient
        Dim sr As IO.StreamReader
        Dim sw As IO.StreamWriter
        Dim ns As SslStream
        Dim otvet As String
        'соединяемся с сервером
        client = New Net.Sockets.TcpClient
 
        Try
            client.Connect("pop3.yandex.ru", 995)
 
        Catch ex As Exception
            MessageBox.Show("Соединение не установлено" + ex.ToString, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, False)
            Return
        End Try
        ns = New SslStream(client.GetStream)
        ns.AuthenticateAsClient("pop3.yandex.ru")
        sr = New IO.StreamReader(ns, Encoding.ASCII, True)  'это то что отправляет наши команды на сервер
        sw = New IO.StreamWriter(ns)                       'а это то что читает ответы сервера
        otvet = sr.ReadLine()
        TextBox1.Text &= otvet
 
        sw.WriteLine("User " & "........" & Chr(13) & Chr(10))
        sw.Flush()
        otvet = sr.ReadLine()
        If otvet.Substring(0, 3) = "-ER" Then MsgBox("Ошибка")
 
        'отправляем пароль
 
        sw.WriteLine("Pass " & "........" & Chr(13) & Chr(10))
        sw.Flush()
        otvet = sr.ReadLine
        TextBox1.Text &= vbCrLf & otvet
        If otvet.Substring(0, 3) = "-ER" Then MsgBox("Ошибка")
 
        Dim nummess As Array
        Dim totmessages As Integer
        sw.WriteLine("stat")
        sw.Flush()
        otvet = sr.ReadLine()
        nummess = otvet.Split(" ")
        totmessages = CInt(nummess(1))
        TextBox1.Text &= vbCrLf & totmessages.ToString
    End Sub
End Class
2
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
27.06.2018, 19:35  [ТС] 10
Спасибо. Все работает.
0
Модератор
Эксперт .NET
4311 / 3385 / 507
Регистрация: 27.01.2014
Сообщений: 6,183
28.06.2018, 05:40 11
MrCrown, Orlangur1991, а как таким способом получить вложения, и флаг Прочитано/Непрочитано? тоже интересно будет и нужная инфа )
0
Лень — мое второе и
3220 / 2410 / 685
Регистрация: 28.11.2014
Сообщений: 3,597
Записей в блоге: 3
28.06.2018, 11:13 12
Yury Komar, pop протокол не поддерживает флаги прочитано / не прочитано
2
Модератор
Эксперт .NET
4311 / 3385 / 507
Регистрация: 27.01.2014
Сообщений: 6,183
28.06.2018, 14:52 13
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
pop протокол не поддерживает флаги прочитано / не прочитано
OK, а как насчет вложений и их имена, а так же информации о дате и времени чтоб вести свой журнал писем? Не сталкивался с такими вопросами?
0
Лень — мое второе и
3220 / 2410 / 685
Регистрация: 28.11.2014
Сообщений: 3,597
Записей в блоге: 3
28.06.2018, 15:18 14
Yury Komar,

Не по теме:

Я человек простой, надо делать что-то трудное - ищу библиотеку :)

Получение электронного письма

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

Размер электронного письма
Добрый день, всем. Не подскажете как и где узнать размер входящего письма? В логах спам-фильтра и...

Отчет о доставке электронного письма
всем привет. ) Попытаю счастье и задам еще один нетривиальный вопрос. для стандартного 1с...

Отправка электронного письма из приложения
Здравствуйте. Такая проблема - из приложения по нажатию кнопки передаю данные для отправки...

Отправка электронного письма на E-mail
Всем доброго времени суток. Столкнулся с задачей. Нужно чтоб при нажатии на кнопку на мой E-mail...


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

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