Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310

Проверка доступа к ящику

10.04.2011, 18:50. Показов 2706. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Соблюдая требования модератора буду делать как в Китае:1 вопрос-1 тема. Отправить e-mail мы умеем, но вот вопрос, если отправка не удалась, то vb начинает материть. А вот как сделать так, что ещё перед отправкой сообщения, клиент проверяет доступность почтового ящика и выдаёт что-то вроде:"Почтовый ящик доступен" или "Ошибка подключения"?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2011, 18:50
Ответы с готовыми решениями:

MS Outlook 2007. Настройка доступа к ящику на Яндекс.Почтe
Друзья, добрый день. Пытался ящик на Яндекс.Почтe привязать к Microsoft Outlook 2007 по протоколу IMAP и POP3. Все делал согласно...

Открытие доступа к ящику lotus одного сотрудника для другого сотрудника средствами сервера lotus notes 8.5
Доброго времени суток! Как открыть доступ к ящику lotus одного сотрудника для другого сотрудника средствами сервера lotus notes 8.5 ? Знаю,...

Подобрать пароль к ящику Яндекс
я забыл пароль от яндекса! Как мне написать прогу чтобы она делала перебор пароля ну или хотябы там искала пароль в базе данных яндекса?...

14
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
11.04.2011, 16:42
код отправки, пожалуйста. Наверняка можно словить и обработать возникающее исключение должным образом
0
2 / 2 / 0
Регистрация: 23.02.2011
Сообщений: 38
11.04.2011, 16:50
На днях столкнулся с такой же проблемой.
Юзай TRY И Catch As Exception
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
11.04.2011, 18:43  [ТС]
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
Imports System.Web
Imports System.Net
Imports System.Net.Mail
Imports System.Net.Mime
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Senders As New SmtpClient("smtp.mail.ru", 25)
 
        Senders.Credentials = New NetworkCredential(login, pass)
 
        Senders.EnableSsl = False
 
        Dim Senders1 = New MailMessage()
 
        Senders1.From = New MailAddress(login)
 
        Senders1.To.Add(New MailAddress(адрес))
 
        Senders1.Subject = "Тема"
 
        Senders1.Body = "ТУша"
 
        Senders.Send(Senders1)
Добавлено через 4 минуты
Цитата Сообщение от Replica Посмотреть сообщение
TRY И Catch As Exception
Это понятно, но вот куда его сувать-то? Нужно что бы при подключении к серверу и при попытке залогиниться должно выходить в лебел либо "Всё ок", либо "Что ты брешешь??? Это не твой пас и логин!!!"
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
11.04.2011, 20:49
Цитата Сообщение от Provaider Посмотреть сообщение
но вот куда его сувать-то
VB.NET
1
2
3
4
5
        Try
            Senders.Send(Senders1)
        Catch ex As Exception
            MsgBox(ex.ToString, MsgBoxStyle.Critical)
        End Try
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
11.04.2011, 21:11  [ТС]
Нет,
Памирыч, ты не понял. Если воткнуть туда, то при отсутствии ошибки письмо уйдёт к адресату, но мне нужно сделать так, чтобы письмо НЕ ОТПРАВЛЯЛОСЬ. То есть нужна какая-то команда, которая отправляет на сервер ак и пароль и проверяет - правильные они или нет. Если нет, то как раз пусть выскакивает критикал меседж бокс, ну а если нет и всё, выражаясь сленгом "ТРУ", то пусть вылазиет месседж бокс с поздравлениями=)
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
11.04.2011, 21:18
Я сегодня в ударе походу, уже во второй теме насвистел...
То есть, ты хочешь, что если ящика не существует (например, юзер перепутал буквы), то оно в пустоту не уходило?
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
11.04.2011, 21:21  [ТС]
Во-во. Или узер нуб не указал правильный сервер или пасом ошибся, то в любом случае НИЧЕГО НЕ Отправлялось, просто вылезал мсжбокс с соответствующими комментариями: Человек он или не совсем, и пусть юзает энциклопедию пользователя=)
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
11.04.2011, 23:16
Заюзай эту тему поглубже Клиент для e-mail, мне кажется через POP3 можно проверить!
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
12.04.2011, 00:09
не... проверить существование ящика получателя так просто не удастся. Попробуй отправить сам через нормального клиента, и увидишь что получится. Письмо уйдет (почему бы и нет) только вот или с домена получателя (если ошибка до собаки в имени) или с сервера отправителя (если после) придет ответ о невозможности доставки. Обычно с ответом приходит и само письмо во вложении.
А Pop3... он для получения писем с сервера клиентской прогой. Как им проверить валидность имени ящика???
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
12.04.2011, 17:58
например так
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
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
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports System.Windows.Forms
Public Class Form1
    Inherits Form
    Public Shared hostname As New Windows.Forms.TextBox 'хост 
    Public Shared messages As New Windows.Forms.ListBox 'вроде эта штуковина не нужна
    Public Shared password As New Windows.Forms.TextBox 'пароль 
    Public Shared status As New Windows.Forms.TextBox 'статус 
    Public Shared username As New Windows.Forms.TextBox 'юзер/логин 
    Public Shared mailclient As TcpClient
    Public Shared ns As NetworkStream
    Public Shared sr As StreamReader
    Public Shared sw As StreamWriter
 
 
 
    Private Sub ButtonloginOnClick()
        status.Text = "Проверка..."
        loginandretr()
   
    End Sub
 
    Public Shared Sub ButtoncloseOnClick(ByVal obj As Object, ByVal ea As EventArgs)
        If ns IsNot Nothing Then
            sw.Close()
            sr.Close()
            ns.Close()
            mailclient.Close()
        End If
 
    End Sub
 
    Private Sub loginandretr()
        Try
 
            Dim response As String
            Dim from As String = Nothing
            Dim subject As String = Nothing
 
 
            Try
                mailclient = New TcpClient(hostname.Text, 110)
            Catch generatedExceptionName As SocketException
                status.Text = "Никак"
                TextBox2.Text = TextBox2.Text & vbCrLf & vbCrLf & status.Text
                Return
            End Try
 
            ns = mailclient.GetStream()
            sr = New StreamReader(ns)
            sw = New StreamWriter(ns)
 
            response = sr.ReadLine()
 
            sw.WriteLine("User " + username.Text)
            sw.Flush()
 
            response = sr.ReadLine()
            If response = "-ERR" Then
                status.Text = "Никак"
                TextBox2.Text = TextBox2.Text & vbCrLf & vbCrLf & status.Text
                 Return
            End If
 
            sw.WriteLine("Pass " + password.Text)
            sw.Flush()
 
            Try
                response = sr.ReadLine()
            Catch generatedExceptionName As IOException
                status.Text = "Невозможно подключиться"
                TextBox2.Text = TextBox2.Text & vbCrLf & vbCrLf & status.Text
                 Return
            End Try
            If response.Substring(0, 3) = "-ER" Then
                status.Text = "Сервер не доступен"
                TextBox2.Text = TextBox2.Text & vbCrLf & vbCrLf & status.Text
                Return
            End If
 
            sw.WriteLine("stat")
            sw.Flush()
 
        Catch ex As Exception
 
        End Try
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        password.Text = psw.Text
        username.Text = user.Text
        hostname.Text = host.Text
        ButtonloginOnClick()
 
    End Sub
End Class
на форму 5 текстбоксов psw, user, host, Textbox2 и кнопка, только поправьте код, а то он жутко корявый
1
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
12.04.2011, 19:10  [ТС]
Ciberst, заранее спасибо. К завтра поправлю и проверю. Если это работает, то с меня цистерна пива.
P.S Как говорит мин здрав, пиво-вредит здоровью, а также развивает женские гены в организме(то ли гормоны). Так что, заботясь о твоём здоровье, цистерна пива отменяется=)))
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
12.04.2011, 19:38
Немного подправил код
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports System.Windows.Forms
Public Class Form1
 
    Dim mailclient As TcpClient
    Dim ns As NetworkStream
    Dim sr As StreamReader
    Dim sw As StreamWriter
    Private Sub ButtoncloseOnClick()
        If ns IsNot Nothing Then
            sw.Close()
            sr.Close()
            ns.Close()
            mailclient.Close()
        End If
    End Sub
 
    Private Sub loginandretr()
        Try
            'переменые
            Dim response As String
            Dim from As String = Nothing
            Dim subject As String = Nothing
            Try
                mailclient = New TcpClient(host.Text, 110) ' конект к хосту по порту 110
            Catch generatedExceptionName As SocketException
                MsgBox("Сервер POP3 не отвечает") 'выводим сообщение, если он не отвечает
                Return
            End Try
            ns = mailclient.GetStream()
            sr = New StreamReader(ns)
            sw = New StreamWriter(ns)
            response = sr.ReadLine()
            sw.WriteLine("User " + user.Text)
            sw.Flush()
            response = sr.ReadLine() 'получаем ответ от хоста
            If response = "-ERR" Then
                MsgBox("Сервер не отвечает")
                Return
            End If
            sw.WriteLine("Pass " + psw.Text)
            sw.Flush()
            Try
                response = sr.ReadLine() 'получаем ответ от хоста
            Catch generatedExceptionName As IOException
                MsgBox("Логин или пароль неверен")
                Return
            End Try
            If response.Substring(0, 3) = "-ER" Then
                MsgBox("Логин или пароль неверен")
                Return
            End If
            MsgBox("УРА. ВЫ законектились")
            sw.WriteLine("stat")
            sw.Flush()
        Catch ex As Exception
            MsgBox("Критическа ошибка:" & ex.Message)
        End Try
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim startlogin As New Thread(New ThreadStart(AddressOf loginandretr)) 'создаем поток
        startlogin.IsBackground = True
        startlogin.Start() ' запускаем поток
    End Sub
End Class
1
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
15.04.2011, 15:46  [ТС]
Спасибо большое. Всё работает
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
18.04.2011, 15:21  [ТС]
Хм, чуть подправил код вот так вот
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
52
53
54
55
56
57
58
59
60
61
 Private Sub loginandretr()
        Try
            'переменые
            Dim response As String
            Dim from As String = Nothing
            Dim subject As String = Nothing
            Try
                mailclient = New TcpClient("POP.mail.ru", 110) ' конект к хосту по порту 110
            Catch generatedExceptionName As SocketException
                MsgBox("Сервер POP3 не отвечает") 'выводим сообщение, если он не отвечает
                Return
            End Try
            ns = mailclient.GetStream()
 
            sr = New StreamReader(ns)
            sw = New StreamWriter(ns)
            response = sr.ReadLine()
            sw.WriteLine("User " + TextBox1.Text)
            sw.Flush()
            response = sr.ReadLine() 'получаем ответ от хоста
            If response = "-ERR" Then
                MsgBox("Сервер не отвечает")
                Return
            End If
            sw.WriteLine("Pass " + TextBox2.Text)
            sw.Flush()
            Try
                response = sr.ReadLine() 'получаем ответ от хоста
            Catch generatedExceptionName As IOException
                errop = False
                err = True
                Return
            End Try
            If response.Substring(0, 3) = "-ER" Then
                errop = False
                err = True
                Return
            End If
            errop = False
            err = False
            yescon = True
            sw.WriteLine("stat")
            sw.Flush()
        Catch ex As Exception
            MsgBox("Критическа ошибка:" & ex.Message)
        End Try
        
 
    End Sub
 
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim startlogin As New Thread(New ThreadStart(AddressOf loginandretr)) 'создаем поток
        startlogin.IsBackground = True
        startlogin.Start() ' запускаем поток
        If errop = True Then PictureBox1.Visible = True
        If err = True Then PictureBox2.Visible = True
        If yescon = True Then PictureBox3.Visible = True
        If errop = False Then PictureBox1.Visible = False
        If err = False Then PictureBox2.Visible = False
        If yescon = False Then PictureBox3.Visible = False
    End Sub
Но все значения переменных err errop yescon остаются false. Я не пойму в чём дело. Может я не могу ничего делать в этом патоке кроме проверки майла?

Добавлено через 21 час 40 минут
решив, что дело в потоках, я сделал так
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
 Private Sub loginandretr()
        System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False
        Try
            'переменые
            Dim response As String
            Dim from As String = Nothing
            Dim subject As String = Nothing
            Try
                mailclient = New TcpClient("POP.mail.ru", 110) ' конект к хосту по порту 110
            Catch generatedExceptionName As SocketException
                MsgBox("Сервер POP3 не отвечает") 'выводим сообщение, если он не отвечает
                Return
            End Try
            ns = mailclient.GetStream()
 
            sr = New StreamReader(ns)
            sw = New StreamWriter(ns)
            response = sr.ReadLine()
            sw.WriteLine("User " + TextBox1.Text)
            sw.Flush()
            response = sr.ReadLine() 'получаем ответ от хоста
            If response = "-ERR" Then
                MsgBox("Сервер не отвечает")
                Return
            End If
            sw.WriteLine("Pass " + TextBox2.Text)
            sw.Flush()
            Try
                response = sr.ReadLine() 'получаем ответ от хоста
            Catch generatedExceptionName As IOException
                PictureBox1.Visible = False
                PictureBox2.Visible = True
                Return
            End Try
            If response.Substring(0, 3) = "-ER" Then
                PictureBox1.Visible = False
                PictureBox2.Visible = True
                Return
            End If
            PictureBox1.Visible = False
            PictureBox2.Visible = False
            PictureBox3.Visible = True
            sw.WriteLine("stat")
            sw.Flush()
        Catch ex As Exception
            MsgBox("Критическа ошибка:" & ex.Message)
        End Try
Добавлено через 33 секунды
но млин, picturebox1 пропадает, а другие не загораются
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2011, 15:21
Помогаю со студенческими работами здесь

Сколько способов разложить n шаров по n-1 ящику?
Шары разные, только один ящик должен быть пустым

Программно получить доступ к почтовому ящику
Добрый день ув. пользователи! Есть доступы к почтовому ящику, к примеру pop.mtw.ru:110. Каким образом можно от туда не через интерфейс, а...

Проверка доступа в интернет
создал поток и в нем бесконечно отсылаю запросы на ссервер к файлу,содержащиму текст "1" procedure TCheckConnect.Execute; var...

Проверка доступа к файлу
Здорова! Столкнулся с проблемой, когда находил пустые папки, вылетала ошибка /нет доступа к ....\, как ее просто игнорировать и ехать...

Проверка доступа в интернет
Как узнать имеет ли устройство доступ в интернет?


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru