Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11639
Последний выпуск: 19.06.2015

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

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

Будем считать, что адрес отправителя хранится в переменной 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, помогу).


Отправка электронной почты
www.vbstreets.ru

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
12K
11 мая 2005 года
Newone
0 / / 11.05.2005
Мне нравитсяМне не нравится
20 января 2007, 20:53:05
Незнаю назнач. эт сампл , но а где же
winsock.Remoteport=?
'winsock.Connect
Call Delay_or_Pause()
Йок они чтоль?
2.
14K
14 апреля 2006 года
Ambal
10 / / 14.04.2006
Мне нравитсяМне не нравится
18 декабря 2006, 01:00:08
Здесь бы еще описать как пройти аутентификацию на сервере, желательно через pop3.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог