Статьи о почте

Новости

Все новости

Разное в мире IT

Все заметки

mailinfo.ru - Статьи о почте

Отправка электронной почты на Visual Basic

Прислал(а) Гайдар Магдануров [17 марта 2002]

раздел: [Исходники]

В последнее время мне часто задают вопрос - ну как же написать программу, отправляющую электронную почту? Ну вот тут я что-то набросал. Это не есть полностью работоспособный код, так кое-что для затравки. Хдесь я опишу основной принцип и последовательность команд.

Будем считать, что адрес отправителя хранится в переменной FromUser, адрес получателя в переменной ToUser, тема сообщения - Subject, сообщение - Message. Из переменной FromUser извлекаем переменную FromHost (InStr и Right - относительно @).

Событие начала сеанса.

winsock.Close \'Закрываем на всякий случай возможно открытые сеансы
winsock.RemoteHost = FromHost \'Сообщаем, откуда происходит отправление
winsock.Connect \'Соединяем

Private Sub winsock_Connect() \'При соединении возникает такое событие
Data = "RSET" & vbCrLf & "HELO " & winsock.LocalIP & vbCrLf \'Сообщаем наш IP
winsock.SendData Data

Data = "MAIL FROM: " & FromUser & vbCrLf \'Сообщаем от кого сообщение
winsock.SendData Data

Data = "RCPT TO: " & ToUser & vbCrLf \'Сообщаем кому сообщение
winsock.SendData Data

Data = "DATA" & vbCrLf \'Посылаем команду DATA
winsock.SendData Data

Data = "Subject: " & txtSubject.Text & vbCrLf & vbCrLf & Message & vbCrLf \'Посылаем тему сообщению
winsock.SendData Data

Data = "." & vbCrLf \'Заканчиваем сообщение
winsock.SendData Data

Data = "QUIT" & vbCrLf \'Завершаем сеанс
winsock.SendData Data
End Sub

Private Sub winsock_DataArrival(ByVal bytesTotal As Long) \'Для отладки просматриваем то, что приходит с сервера
winsock.GetData Data, vbString
Debug.Print "[Получено]: " & Data
End Sub


Private Sub winsock_Error(Number As Integer, Description As String, Scode As Long, Source As String, HelpFile As String, HelpContext As Long, CancelDisplay As Boolean)
MsgBox Description, vbOKOnly + vbCritical, "Ошибка!"
End Sub

Опять же - это не полностью рабочая программа, а только зарисовка. Делайте сами. (Если кто-нибудь что-то сделает - пишите мне на gaidar@vbstreets.ru, помогу).