powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отправка email через gmail.com + System.Net.Mail фигня какая-то.
25 сообщений из 70, страница 1 из 3
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38850926
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ранее использовал CDO.Message для этих целей:
Код: vbnet
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.
'!!! кодVB6
Option Explicit

Private Sub Command1_Click()
  SendTestMailCDO
End Sub

Private Sub SendTestMailCDO()
  Const email_To As String = "recipient@bk.ru"
  Const email_From As String = "sender@gmail.com"
  Const smtp_Server As String = "smtp.gmail.com"
  Const smtp_Username As String = "sender@gmail.com"
  Const smtp_Password As String = "password"

  Dim o_Mess As CDO.Message 'As Object
  Dim v_Conf As String
  
  '-------------------------------
  'composing message with CDO
  On Error GoTo ErrOfSend
  Set o_Mess = CreateObject("CDO.Message")
  v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
  With o_Mess
    .To = email_To
    .From = email_From
    .Subject = "Test subject"
    .TextBody = "Test body"
    '.AddAttachment Trim(TextAttach.Text)
    With .Configuration.Fields
      .Item(v_Conf & "sendusing") = 2
      .Item(v_Conf & "smtpserver") = smtp_Server
      .Item(v_Conf & "smtpauthenticate") = 1 '1-использовать
      .Item(v_Conf & "sendusername") = smtp_Username
      .Item(v_Conf & "sendpassword") = smtp_Password
      .Item(v_Conf & "smtpserverport") = "465"
      .Item(v_Conf & "smtpusessl") = True 'использовать SSL
      .Item(v_Conf & "smtpconnectiontimeout") = 60 'пока считаем что 60, потом м.б. добавим параметр
      .Update
    End With
    .Send
  End With
  MsgBox "Пробное сообщение на адрес " & o_Mess.To & " было успешно отправлено!", vbInformation + vbOKOnly, "Email отправлен"
  Exit Sub
ErrOfSend:
  MsgBox "Отправка письма завершилась неудачей." & vbCrLf & "Код ошибки: " & Err.Number & vbCrLf & Err.Description, _
   vbCritical + vbOKOnly, "Отправка email не удалась."
End Sub



Изучаю, что есть в .Net.
System.Web.Mail (обертка над CDO) типа устарел.
Но есть типа System.Net.Mail -его и пользуйте.
С обычным SMTP (25-й порт) проблем не увидел, пробую gmail.com
Пример упростил до предела:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  Private Sub ButtonSendSimple_Click(sender As Object, e As EventArgs) Handles ButtonSendSimple.Click
    Try
      Dim client As New SmtpClient()
      client.Host = "smtp.gmail.com"
      client.Port = 465
      client.Credentials = New System.Net.NetworkCredential("sender@gmail.com", "password")
      client.EnableSsl = True

      Dim message As New MailMessage(New MailAddress("sender@gmail.com"), New MailAddress("recipient@bk.ru"))
      message.Body = "Test body"
      message.Subject = "Test subject"

      client.Send(message)

      MsgBox("OK")
    Catch
      MsgBox(Err.Description)
    End Try
  End Sub


Не работает зараза.
Время ожидания операции истекло.
Гуглил. Нашел вот это:
http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail

Поменял порт:
Код: vbnet
1.
client.Port = 587


Заработало.

Попытался ради интереса воткнуть 587- порт в старый CDO-код: .Item(v_Conf & "smtpserverport") = "587"
Пишет: транспорту не удалось подключиться к серверу, а с 465-м работает.

И вот я честно этой фигни не догоняю.
SSL-Порт всю жизнь был по дефолту 465, во всех SMTP-клиентах (это справедливо для gmail, для yandex.ru, для mail.ru) откуда взялся 587? Что не так делаю? Что не понимаю?

Я конечно не спец в этих почтах, но элементарная неглючная ф-ция отправки через стандартный SMTP(с SSL или без) мне необходима.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38850984
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851010
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser,

похоже на то, как всегда чего-то не хватает.
По твоей ссылке дальше еще явно на эту тему сказано:
SmtpClient.EnableSsl Property An alternate connection method is where an SSL session is established up front before any protocol commands are sent. This connection method is sometimes called SMTP/SSL, SMTP over SSL, or SMTPS and by default uses port 465. This alternate connection method using SSL is not currently supported.
Попробую счас к CDO напрямую подключиться (без "классов"), посмотрю насколько в .Net это прокатит.
System.Web.Mail они не рекомендуют, и в этой старой обертке похоже не все гладко с Encording (если UTF-8 использовать), ее точно не хочу.
Использовать System.Net.Mail + TLS + 587-й порт м.б. и вариант, но это нестандартный подход (user-обыватель привык к 465-му).
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851023
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря не понял, в чем именно проблема? Какая разница, какой там порт, если все работает?

В инструкциях четко сказано, что для SSL вам нужен 465, для TLS - 587. SmtpClient поддерживает explicit ssl, что означает соединение по незашифрованному каналу, а затем starttls. SSL/465 устарел.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851025
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77но это нестандартный подход (user-обыватель привык к 465-му).
С какой стати ваши юзеры вообще должны знать про номер порта?
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851042
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Arm79]Дмитрий77С какой стати ваши юзеры вообще должны знать про номер порта?
Надеюсь вы не предлагаете "вшивать" номер порта в код?
Вообще-то в любом SMTP клиенте SMTP-сервер настраивается путем указания сервера, порта, user-password, ssl(да/нет).
И настраивается он как правило по инструкции от провайдера.
А инструкции вот они.
Помощь Почта Mail.Ru Доступ из почтовых программ
Настройка почтовых программ Яндекс Помощь
Arm79SSL/465 устарел
Да неужели в самом деле?
Во всех инструкциях все так и пестрит 465-м портом, а 587 если где и упомянается то лишь местами и вскользь.

Ну я проверил, не знаю как в C#, но в VB.Net классический CDO-код (позднее связывание без ранней ссылки на COM-объект) работает на ура, нарочно протестировал как x64 так и x86 код на Win 8.1, а также на XP(x86):
Код: vbnet
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.
  Private Sub ButtonSendCDO_Click(sender As Object, e As EventArgs) Handles ButtonSendCDO.Click
    Try
      Dim o_Mess As Object = CreateObject("CDO.Message")
      Dim v_Conf As String = "http://schemas.microsoft.com/cdo/configuration/"
      With o_Mess
        '===(В-1)код необходим для добавления utf-8 в Subject(если .AddAttachment стоит до .TextBodyPart.Charset)===
        .BodyPart.Charset = "utf-8"
        '===(В-1)код необходим для добавления utf-8 в Subject(если .AddAttachment стоит до .TextBodyPart.Charset)===
        .To = "Получатель<recipient@bk.ru>;"
        .From = "Отправитель<sender@gmail.com>;"
        .Subject = "Тема сообщения"
        .TextBody = "Текст сообщения"
        .TextBodyPart.Charset = "utf-8"
        .AddAttachment(IO.Path.Combine(Application.StartupPath, "readme.txt")) '.Charset = "utf-8"
        With .Configuration.Fields
          .item(v_Conf & "sendusing") = 2
          .item(v_Conf & "smtpserver") = "smtp.gmail.com"
          .item(v_Conf & "smtpserverport") = 465
          .item(v_Conf & "smtpauthenticate") = 1 '1-использовать
          .item(v_Conf & "sendusername") = "sender@gmail.com"
          .item(v_Conf & "sendpassword") = "password"
          .item(v_Conf & "smtpusessl") = True 'использовать SSL
          .item(v_Conf & "smtpconnectiontimeout") = 60 'пока считаем что 60, потом м.б. добавим параметр
          .Update()
        End With
        .Send()
      End With
      MsgBox("Test mail was sent successfully!", vbInformation + vbOKOnly, "Email was sent")
    Catch
      MsgBox("Sending mail...Failed." & vbCrLf & "Error code: " & Err.Number & vbCrLf & Err.Description, _
       vbCritical + vbOKOnly, "Sending mail failed.")
    End Try
  End Sub



Как вариант "НЕРЕКОМЕНДУЕМЫЙ" System.Web.Mail - тоже все работает (ну это же тоже самое):
Код: vbnet
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.
  Private Sub ButtonWebMail_Click(sender As Object, e As EventArgs) Handles ButtonWebMail.Click
    Try
      Dim Message As System.Web.Mail.MailMessage = New System.Web.Mail.MailMessage()
      Dim v_Conf As String = "http://schemas.microsoft.com/cdo/configuration/"
      With Message
        .To = "Получатель<recipient@bk.ru>;"
        .From = "Отправитель<sender@gmail.com>;"
        .Subject = "Тема сообщения"
        .Body = "Текст сообщения"
        .BodyFormat = Web.Mail.MailFormat.Text
        .BodyEncoding = System.Text.Encoding.UTF8
        .Attachments.Add(New Web.Mail.MailAttachment(IO.Path.Combine(Application.StartupPath, "readme.txt")))
        With .Fields
          .Item(v_Conf & "sendusing") = 2
          .Item(v_Conf & "smtpserver") = "smtp.gmail.com"
          .Item(v_Conf & "smtpserverport") = 465
          .Item(v_Conf & "smtpauthenticate") = 1 '1-использовать
          .Item(v_Conf & "sendusername") = "sender@gmail.com"
          .Item(v_Conf & "sendpassword") = "password"
          .Item(v_Conf & "smtpusessl") = True 'использовать SSL
          .Item(v_Conf & "smtpconnectiontimeout") = 60 'пока считаем что 60, потом м.б. добавим параметр
        End With
      End With
      Web.Mail.SmtpMail.SmtpServer = "smtp.gmail.com"
      Web.Mail.SmtpMail.Send(Message)
      MsgBox("Test mail was sent successfully!", vbInformation + vbOKOnly, "Email was sent")
    Catch
      MsgBox("Sending mail...Failed." & vbCrLf & "Error code: " & Err.Number & vbCrLf & Err.Description, _
       vbCritical + vbOKOnly, "Sending mail failed.")
    End Try
  End Sub


Но CreateObject("CDO.Message") мне честно нравится больше.

По хорошему сделать выбор в настройках что использовать:
System.Net.Mail или CDO.Message
(мало какие несовместимости в частных случаях)
А с другой стороны много вариантов -> лишняя путаница для пользователя.

В чем преимущество System.Net.Mail ?
Возможность асинхронного запуска (client.SendAsync)?
Ну при том что в .Net с многопоточностью проблем нет, можно и CDO-отправку в отдельном потоке запустить, если уж это критично с т.зр. стабильности приложения (чтоб не стопорилось пока не отправит).
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851045
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Во всех инструкциях все так и пестрит 465-м портом, а 587 если где и упомянается то лишь местами и вскользь.
Насколько я понимаю, что 25 порт, что 587 - это стандартные порты для SMTP (без SSL). Проверил, для яндекса 587 порт вполне рабочий. С mail.ru пока не разобрался.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851050
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

>Насколько я понимаю, что 25 порт, что 587 - это стандартные порты для SMTP (без SSL).

похоже вы правы.
Так понимаю 587 "придумали" как альтернативу 25-му порту (который всех достал из-за спама и т.п.).
Но у моего хостинг-провайдера например 587-й порт не работает (обычный SMTP без SSL через 25-й порт).

client.EnableSsl = True в System.Net.Mail реализует альтернативный способ "SSL-авторизации". Путем посылки STARTTLS для переключения в зашифрованный канал из незашифрованного.

И gmail кстати по этому методу и через 25-й порт работает - только что проверил.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  Private Sub ButtonSendSimple_Click(sender As Object, e As EventArgs) Handles ButtonSendSimple.Click
    Try
      Dim client As New SmtpClient()
      client.Host = "smtp.gmail.com"
      client.Port = 25 'или 587 !!! оба варианта рабочие
      client.Credentials = New System.Net.NetworkCredential("sender@gmail.com", "password")
      client.EnableSsl = True

      Dim message As New MailMessage(New MailAddress("sender@gmail.com"), New MailAddress("recipient@bk.ru"))
      message.Body = "Test body"
      message.Subject = "Test subject"

      client.Send(message)

      MsgBox("OK")
    Catch
      MsgBox(Err.Description)
    End Try
  End Sub


Но классическим SSL-методом все-таки считаю является коннект на (по дефолту) 465-й порт с изначальным стартом SSL-сессии.
И этот метод как раз в System.Net.Mail не поддерживается.
И это непорядок.

А интересно, STARTTLS в CDO поддерживается?
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851068
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вот еще что интересно (касательно gmail):

CDO (.item(v_Conf & "smtpusessl") = True): работает через 25-й порт (!!!) и через 465-й порт, через 587-не работает (!)-Error:транспорту не удалось подключиться к серверу

System.Net.Mail (client.EnableSsl = True): работает через 25-й порт и через 587-й порт, через 465-й -не работает - Время ожидания операции истекло.

Пробую "Почта Windows==Outlook Express"(ssl=true): работает через 25-й,465-й,587-й порты (и gmail и mail.ru)

Погуглил, некоторые жалуются на CDO что не работает (сервер требует STARTTLS -Explicit SSL),
другие жалуются на System.Net.Mail что не работает (сервер хочет Implicit SSL)

http://www.systemnetmail.com/faq/5.3.aspx

http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

Получается, по хорошему надо имплементировать оба варианта, чтоб в случае "проблемного" сервера (только Implicit SSL или только Explicit SSL) юзер смог выбрать единственный рабочий для него вариант.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851121
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77надо имплементировать оба варианта
или поступать проще - не использовать ssl
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851133
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79или поступать проще - не использовать ssl Ну, лично я то не против.
Ток забыли посоветоваться с gmail, yandex и mail.ru, также с юзерами которые все это пользуют.
Плюс куча контор со своими SMTP, которые на секретности конечно помешаны, но при этом могут поддерживать "только Implicit " или "только Explicit/STARTTLS". Были у меня клиенты, которые претензии по этому поводу пытались предъявлять, типа с их SMTP не работает (вероятно у них был SSL +Explicit). Послал, типа моя прога не SMTP-клиент, а серверов по миру навалом -используйте другой. Но если есть возможность быстро имплементировать, почему нет.
P.S. Hotmail кажется только Explicit/STARTTLS поддерживает, надо б проверить для интереса.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851138
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77P.S. Hotmail кажется только Explicit/STARTTLS поддерживает, надо б проверить для интереса.
Не, работает
CDO+Implicit SSL по 25-му порту
System.Web.Mail +Explicit SSL по 25-му и 587-му порту
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851151
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Дмитрий77P.S. Hotmail кажется только Explicit/STARTTLS поддерживает, надо б проверить для интереса.
Не, работает
CDO+Implicit SSL по 25-му порту
System.Web.Mail +Explicit SSL по 25-му и 587-му порту

Всё работает, чуток только надо задействовать мозг и google:

Код: c#
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.
    public static bool SendGmail(string subject, string content, string[] recipients, string from)
    {
        bool success = recipients != null && recipients.Length > 0;

        if (success)           
        {
            SmtpClient gmailClient = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                UseDefaultCredentials = false,
                Credentials = new System.Net.NetworkCredential("******", "*****")             
            };


            using (MailMessage gMessage = new MailMessage(from, recipients[0], subject, content))
            {
                for (int i = 1; i < recipients.Length; i++)
                    gMessage.To.Add(recipients[i]);

                try
                {
                    gmailClient.Send(gMessage);
                    success = true;
                }
                catch (Exception) { success = false; }
            }
        }
        return success;
    }




Искренние соболезнования людям, у которых на уровне провайдера отключены все поисковики, включая гугл, яндекс и майлру. Держитесь там.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851153
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё есть всякие разные NuGet пакеты, если чо-то там в Net.Mail не заводится, например http://opaquemail.org/
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851155
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851156
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Прочел бы тему внимательно :-) Никто не говорит, что не работает gmail... Речь о том, что на порту 465, который gmail поддерживает, smtpclient не работает, так как там реализован режим implicit ssl. А порты 25/587 - это exlicit ssl (через starttls).

Цитата по smtpclient
авторКласс SmtpClient поддерживает только расширение службы SMTP для Secure SMTP через протокол TLS, определенный в RFC 3207. В этом режиме сеанс SMTP начинается в незашифрованном канале, затем от клиента к серверу дается команда STARTTLS, чтобы переключиться на безопасное соединение с помощью протокола SSL. См. RFC 3207 опубликованный IETF для получения дополнительных сведений.
Методом альтернативного подключения называется тот, при котором сеанс SSL устанавливается заранее, до отправки команд протокола. Этот способ подключения иногда называют SMTP/SSL, SMTP через SSL или SMTPS. По умолчанию для него используется порт 465. Этот альтернативный способ подключения с помощью протокола SSL в настоящее время не поддерживается.

PS Приведи пример с mail.ru
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851157
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя лично я проблем, используя System.Net.Mail, не испытывал ни с одним почтовым сервером. Даже обидно как-то.
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851158
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttХотя лично я проблем, используя System.Net.Mail, не испытывал ни с одним почтовым сервером
Arm79PS Приведи пример с mail.ru
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851161
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79PS Приведи пример с mail.ru

С хабора :

AigizKЗнакомая история. Mail.ru то же теперь работает только через SSL. И там та же проблема.
Причина из за того что SmtpClient поддерживает только Explicit SSL. Поэтому он должен сперва коннектиться к 25 порту, а потом начинать шифровать. Опять же, при условие что сервер так настроен. А если сервер настроен, чтоб получить сразу SSL/TLS, тогда без бубна отправить письмо не получиться.
Вдруг кому пригодится:
stackoverflow.com/questions/1011245/how-can-i-send-emails-through-ssl-smtp-with-the-net-framework
stackoverflow.com/questions/172811/is-there-a-way-i-can-tell-whether-an-smtp-server-is-expecting-a-client-to-connect/172860#172860

Я говорю лишь о том, что тема в интернетах уже обсосана до дыр. Даже не так. До ДЫР. Ну конечно, стоит ещё разочек помусолить
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851162
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

System.Net.Mail does support "explicit SSL" (also known as "StartTLS" - usually on port 465), but not "implicit SSL" (aka "SMTPS" - usually on port 587).
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851164
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttArm79,

System.Net.Mail does support "explicit SSL" (also known as "StartTLS" - usually on port 465), but not "implicit SSL" (aka "SMTPS" - usually on port 587).
сам то понял, что цитируешь?


System.Net.Mail does support "explicit SSL" (also known as "StartTLS" - usually on port 465), but not "implicit SSL" (aka "SMTPS" - usually on port 587) .
И при этом ты даешь код, где все работает с портом 587:

hVostt
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
SmtpClient gmailClient = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                UseDefaultCredentials = false,
                Credentials = new System.Net.NetworkCredential("******", "*****")             
            };
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851169
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79И при этом ты даешь код, где все работает с портом 587:

Да, и этот код прекрасно работает!
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851171
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttArm79И при этом ты даешь код, где все работает с портом 587:

Да, и этот код прекрасно работает!
а ты попробуй с портом 465 :-)

в этой теме как раз таки и говорится, что с 587/25 портом все работает, но в "старом" режиме, с предварительной шифрацией канала, smtpclient не работает
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851175
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

На гуглопочту почта может не отправляться ещё по нескольким причинам:

1. Нужно подтверждение, если почтой давно не пользовались, например, через СМС.
2. Ещё нужно, чтобы был включён в настройках POP (вроде бы).
...
Рейтинг: 0 / 0
Отправка email через gmail.com + System.Net.Mail фигня какая-то.
    #38851177
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79а ты попробуй с портом 465 :-)

в этой теме как раз таки и говорится, что с 587/25 портом все работает, но в "старом" режиме, с предварительной шифрацией канала, smtpclient не работает

А ты попробуй телнетом подключиться к гуглопочте

Код: powershell
1.
o smtp.gmail.com 465
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 1 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отправка email через gmail.com + System.Net.Mail фигня какая-то.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]