Я пишу простую форму Windows (Visual Studio 2010, .NET 4.0, Windows 2008 32bit). Нажав на кнопку, отправьте электронное письмо.SmtpClient Класс: send() работает, а не sendAsync()
Функция SendMaildButton_Click()
отправляет почту, и если она завершена (метод aSync), она вызывает SendCompletedCallback()
.
Public Class MailForm
Private sc As System.Net.Mail.SmtpClient
Private Sub MailForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sc = New System.Net.Mail.SmtpClient
AddHandler sc.SendCompleted, AddressOf SendCompletedCallback
End Sub
Private Sub SendCompletedCallback(ByVal sender As Object, _
ByVal e As AsyncCompletedEventArgs)
' [...]
End Sub
Private Sub SendMaildButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles SendButton.Click
'sc instance of SmtpClient already created on OnLoad form event
' [sc.Host, sc.Port, sc.Credentials stuff ...]
Dim message As MailMessage
' [message filling]
' [relevant part : Send or SendAsync]
' freedom...
message.Dispose()
End Sub
End Class
Это работает perflectly если отправка код:
sc.Send()
fakeSMTPServer Event (фиктивный сервер SMTP) или Gmail получить его. Когда я предпочитаю использовать:
Dim userState As String = "plap" 'message.GetHashCode
AddHandler sc.SendCompleted, AddressOf SendCompletedCallback
sc.SendAsync(message, userState)
Это не работает ... fakeSMTPServer уведомить прием почты, но не действительно извлечения его.
Ошибка сообщение: "Failure sending mail"
Вот StackTrace из fakeSMTPServer:
19 janv. 2017 17:15:43 ERROR com.nilhcem.fakesmtp.server.MailSaver -
java.io.EOFException: Pre-mature end of <CRLF>.<CRLF> terminated data
at org.subethamail.smtp.io.DotTerminatedInputStream.read(DotTerminatedInputStream.java:73) ~[fakeSMTP-2.0.jar:na]
at org.subethamail.smtp.io.DotUnstuffingInputStream.read(DotUnstuffingInputStream.java:47) ~[fakeSMTP-2.0.jar:na]
at org.subethamail.smtp.io.DotUnstuffingInputStream.read(DotUnstuffingInputStream.java:76) ~[fakeSMTP-2.0.jar:na]
Что ДИТ я скучаю?
Да, действительно. Это было очевидно. Благодаря ! – Amessihel
Более подробную информацию можно найти здесьhttp: //stackoverflow.com/a/7276819/213550, независимо от того, что это вопрос C# – VMAtm