System.Net.Mail을 사용하고 있습니다. 이 영역 주변에는 몇 가지 주제가 있지만 ASP.NET과 종종 VB와 관련되어 있습니다. 저는 코드를 데스크탑 스켈레톤 코드로 분리하고 있습니다. .NET 3.5와 C#을 사용합니다. 보내기는 내가 시도한 모든 시나리오에서 작동합니다 (EnableSsl false/true, UseDefaultCredentials false/true). 하지만 UseAsefync는 UseDefaultCredentials가 true로 설정되지 않은 경우에만 작동합니다 (명시 적으로 false로 설정하면 문제가 될 수 있습니다. 기본값은 false 임). EnableSsl은 true (OK, 서버 설정 일 수도 있음)이고 freakin 하드 코드입니다. 내 신임장. UseDefaultCredentials를 사용하여 SendAsync를 할 수 있기를 원합니다. 코드 : (ThreadOption.BackgroundThread 지정) 프리즘의 EventAggregator 같은왜 SmtpClient SendAsync가 SendDefaultCredentials와 EnableSsl의 조합으로 예외를 throw하는 이유는 무엇입니까?
void sendmail() {
MailMessage email = new MailMessage();
email.From = new MailAddress("[email protected]");
email.To.Add("[email protected]");
email.Subject = "Simple test email subject";
email.Body = "Simple test email body";
string mHost = "mail.software.com";
string mUsername = @"DOMAIN\tcs";
string mPassword = "myfreakinpassword?Really???";
SmtpClient smtpCli = new SmtpClient(mHost);
//smtpCli.UseDefaultCredentials = true;
smtpCli.Credentials = new NetworkCredential(mUsername, mPassword);
smtpCli.EnableSsl = true;
smtpCli.SendCompleted += smtpCli_SendCompleted;
try {
//smtpCli.Send(email);
smtpCli.SendAsync(email, null); // This mofo only works in this combination
}
catch (Exception ex) {
Console.WriteLine(ex);
}
}
void smtpCli_SendCompleted(object sender, AsyncCompletedEventArgs e) {
if (e.Error != null)
Console.WriteLine(e.Error);
}
예외는 무엇입니까? – Xharze
예외 (모든 조합) : "System.Net.Mail.SmtpException : SMTP 서버에 보안 연결이 필요하거나 클라이언트가 인증되지 않았습니다. 서버 응답 : 5.7.1 클라이언트가 인증되지 않았습니다. System.Net에서 . Mail.SendMailAsyncResult.End (IAsyncResult 결과) at System.Net.Mail.SmtpClient.SendMailCallback (IAsyncResult result) ". 비밀번호 나 다른 비밀번호를 잘못 입력하면 예외가됩니다. 그러나 내가 말한 것처럼 모든 (의미있는) 시나리오는 Send()와 함께 작동하고 SendAsync()에서는 작동하지 않습니다. –
내 응용 프로그램이 내 사용자의 권한으로 시작됩니다. 메일 보내기 작업을 실행하는 백그라운드 스레드가 다른 권한으로 실행될 수 있습니까? 이것은 데스크탑 소프트웨어입니다. 심지어 UseDefaultCredentials = true가 작동하지 않습니다. 결국 나는 전체 동기식 전송을 나에 의해 만들어진 비동기 계층으로 랩핑하거나 메시징에 와이어 링 할 수 있습니다. 하지만 그때 내 베개로 비명을 지르지, SendAsync 너무 많이 이해가되지 않습니다. 나는 지금 이것에 얼마나 많은 시간을 보냈 는가, 그것은 단지 작동해야만한다. –