SmtpClient.SendAsync () больше не работает - PullRequest
1 голос
/ 24 мая 2010

Я недавно приобрел новый компьютер, и теперь мои электронные письма никогда не отправляются, и НИКОГДА не генерируются какие-либо исключения или что-либо еще.

Может кто-нибудь предоставить несколько примеров, которые работают с использованием класса SmtpClient?Любая помощь будет принята с благодарностью.

Спасибо

Обновления Хорошо, я добавил учетные данные.И может УСПЕШНО ОТПРАВИТЬ электронную почту синхронно.Но я все еще не могу отправить их асинхронно.

Старый: После попытки отправить электронную почту синхронно, я получаю следующее исключение:

Транзакция не удалась.Ответ сервера:

5.7.1 <myfriend@hotmails.com>: доступ к реле запрещен.

Ответы [ 2 ]

1 голос
/ 11 марта 2013

Вы можете отправлять почту через Async ().Как означает, что вы должны следовать приведенному ниже коду,

smtpClient.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted);
smtpClient.SendAsync(mailMessage, mailMessage);

, и, если вы используете асинхронный режим, вам также необходимо иметь такой обработчик событий, как

static void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {
        //to be implemented        
    }

.можно отправить почту.

0 голосов
/ 24 мая 2010

Сначала вы можете попробовать синхронный метод Send , чтобы убедиться, что все настроено правильно с SMTP-сервером и что вы не получаете никаких исключений:

var client = new SmtpClient("smtp.somehost.com");
var message = new MailMessage();
message.From = new MailAddress("from@somehost.com");
message.To.Add(new MailAddress("to@somehost.com"));
message.Subject = "test";
message.Body = "test body";
client.Send(message);

Примечание: В .NET 4 SmtpClient реализует IDisposable , поэтому убедитесь, что вы заключили его в , используя оператор .

...