VB-2008 - Как специфицировать SMTP?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

VB-2008 - Как специфицировать SMTP?

Сообщение immark » 15.09.2010 (Ср) 18:40

Помогите найти ошибку
Ошибка: The SMTP host was not specified
Почему выдает ошибку? Что здесь не так?
Код: Выделить всё
Private Sub mail1()
        Dim AttachFileName As String
        Dim AdrTo As String
        Dim AdrFrom As String
        Dim MailSubj As String = "License"
        Dim MailBody As String = "It is Yours new licemse" & Chr(13) & "Do not repli"
        AdrTo = "mislev@netvision.net.il"
        AdrFrom = "labitap@gmail.com"
        Dim message As New System.Net.Mail.MailMessage(AdrFrom, AdrTo, MailSubj, MailBody)
        AttachFileName = "D:\PROJEKTS\VB - NET\EmailSender\bin\Debug\SoursesAddresses.txt"
        message.Attachments.Add(New System.Net.Mail.Attachment(AttachFileName))
        Dim instance As New System.Net.Mail.SmtpClient
        Dim SmtpClientName As String
        instance.Host = "smtp.gmail.com"
        SmtpClientName = instance.Host
        emailClient.Send(AdrFrom, AdrTo, MailSubj, MailBody)
        'Ошибка: The SMTP host was not specified
        ' Почему выдает ошибку? Что здесь не так?
    End Sub

Благодарю за внимание!

fist100
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 6
Зарегистрирован: 14.09.2010 (Вт) 22:11

Re: VB-2008 - Как специфицировать SMTP?

Сообщение fist100 » 15.09.2010 (Ср) 20:09

А где порт gmail а что под номером 587 ?

Код: Выделить всё
Imports System.Net.Mail

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Mail As New MailMessage
        Mail.Subject = "test email"
        Mail.To.Add("youremail@gmail.com")
        Mail.From = New MailAddress("youremail@gmail.com")
        Mail.Body = "This is an ownage email using VB.NET"

        Dim SMTP As New SmtpClient("smtp.gmail.com")
        SMTP.EnableSsl = True
        SMTP.Credentials = New System.Net.NetworkCredential("username@gmail.com", "password")
        SMTP.Port = "587"
        SMTP.Send(Mail)
    End Sub

End Class


Вот только передавать аттачи я не пробовали и код не мой, взят отсюда

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

Re: VB-2008 - Как специфицировать SMTP?

Сообщение immark » 16.09.2010 (Чт) 15:53

Во-первых, большое спасибо за столь ясный ответ!!!!
Во-вторых, по вопросу порта 587, приведу информацию, скопированную мною в Настройках GMAIL

GMAIL – Настройка почтового клиента
Настройте почтовый клиент в соответствии с указанными ниже параметрами:

Сервер входящей почты (POP3), требуется SSL: pop.gmail.com
Использовать SSL: Да
Порт: 995

Сервер исходящей почты (SMTP), требуется TLS: smtp.gmail.com (использовать проверку подлинности)
Использовать проверку подлинности: Да
Использовать STARTTLS: Да (для некоторых клиентов это называется SSL)
Порт: 465 или 587

Имя аккаунта: имя пользователя Gmail (включая @gmail.com)
Адрес электронной почты: полный адрес электронной почты Gmail (imyapolzovatelya@gmail.com)
Пароль: ваш пароль в Gmail

Кроме случая, когда используется режим "Последние" для загрузки почты в несколько клиентов, убедитесь, что задано не оставлять письма на сервере. Настройки Gmail определяют, остается ли письмо на сервере. Подобные настройки клиента не влияют на то, как Gmail обрабатывает почту.
Обратите внимание: если используемый клиент не поддерживает проверку подлинности SMTP, отправка почты через Gmail будет недоступна.

Еще раз - большое спасибо!

fist100
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 6
Зарегистрирован: 14.09.2010 (Вт) 22:11

Re: VB-2008 - Как специфицировать SMTP?

Сообщение fist100 » 16.09.2010 (Чт) 17:56

Всегда рад :D кстати в msdn есть интересный пример под названием sendmail. Я в нем правда особо не разбирался, ибо только недавно начал программировать, но вам он возможно будет интересен.

Изображение

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

Re: VB-2008 - Как специфицировать SMTP?

Сообщение immark » 16.09.2010 (Чт) 19:27

fist100!
Спасибо! Я попробую разобраться.
Ваш вариант прекрасно работает, но мне нужно отправлять прикрепленный файл.
В знак признательности и для ликвидации у других головной боли при написании почтовой программы посылаю свой вариант, который не только посылает текст письма, но и прикрепленный файл.

Отправка почты с прикрепленным файлом через gmail.com

Код: Выделить всё
Private Sub cmdSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSend.Click
        Dim mFROM, mTO, mSUBJECT, mBODY, mUSER, mPASSWORD, mSMTP_HOST As String
        Dim mATTACH_FILE As String
        mFROM = "youremail@gmail.com"
        mTO = "полный адрес электронной почты "       
  mSUBJECT = "test email"
        mBODY = "Это письмо сгенерировал робот" & Chr(13) & "Отвечать не надо"
        mATTACH_FILE = "Полный путь на диске к прикрепляемому файлу"
        mUSER = "имя пользователя Gmail (включая @gmail.com)"
        mPASSWORD = " ваш пароль в Gmail "
        mSMTP_HOST = "smtp.gmail.com"
        SendMailTo(mFROM, mTO, mSUBJECT, mBODY, mATTACH_FILE, mUSER, mPASSWORD, mSMTP_HOST
    End Sub

    Public Function SendMailTo(ByVal mFROM As String, ByVal mTO As String, _
                  ByVal mSUBJECT As String, ByVal mBODY As String, _
                   ByVal mATTACH_FILE As String, ByVal mUSER As String, _
                  ByVal mPASSWORD As String, ByVal mSMTP_HOST As String) As Long
        Dim Email As New System.Net.Mail.MailMessage(mFROM, mTO)
        Email.Subject = mSUBJECT
        Email.Body = mBODY
        Email.Attachments.Add(New System.Net.Mail.Attachment(mATTACH_FILE))
        Dim basicAuthenticationInfo As New System.Net.NetworkCredential(mUSER, mPASSWORD)
        Dim mailClient As New System.Net.Mail.SmtpClient()
        mailClient.Host = mSMTP_HOST
        mailClient.UseDefaultCredentials = False
        mailClient.Credentials = basicAuthenticationInfo
        mailClient.Send(Email)
    End Function
[Viper] :: Используй тэг CODE! Устное предупреждение.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

    TopList