2012-09-24 3 views
2

.net 응용 프로그램을 통해 smtp-relay를 사용하는 서버에서 전자 메일을 보낼 수 있습니까?SMTP 릴레이 - 콘솔 응용 프로그램에서 전자 메일 보내기

저는 app.config를 사용하여 ex server IP의 실제 값과 이메일에서 사용해야하는 fromadress를 가져옵니다.

IT 기술자에 따르면 인증 할 사용자 이름과 암호는 smtp-relay를 사용하기 때문에 필요하지 않아야합니다. 전자 메일을 보낼 컴퓨터는 유효한 컴퓨터의 SMTP 서버 목록에 있습니다.

실제로 작동합니까, 사용자 이름/암호를 지정할 필요가 없습니까? 당신의 조각에서

try 
{ 
    MailMessage mail = new MailMessage(); 
    SmtpClient SmtpServer = new SmtpClient(_smtpserver); 
    mail.From = new MailAddress(_fromAdress); 
    mail.To.Add(_toAdress); 
    mail.Subject = _subject; 
    mail.Body = _body; 
    mail.Priority = MailPriority.High; 
    SmtpServer.Port = Convert.ToInt32(_port); 
    SmtpServer.Credentials = new System.Net.NetworkCredential(_authUsername, _authPassword); 
    SmtpServer.EnableSsl = true; 
    SmtpServer.Send(mail); 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.ToString()); 
} 
+4

시도해 보셨습니까? – Lloyd

+1

@ Lloyd의 포인트를 확장하려면 시도해야합니다. 실패하면 돌아와서 특정 장애가 있는지 의문을 제기하십시오. – Fenton

+1

예치 가끔 여기에 물어 보는 것보다 이런 것들을 시도하는 것이 훨씬 쉽습니다. 보통 더 빨리 알게 될 것입니다. – Lloyd

답변

1

당신이 지정하는 자격 증명

SmtpServer.Credentials = new System.Net.NetworkCredential(_authUsername, _authPassword); 

당신은 그 줄을 제거 할 수 있고 아직도 당신이 말한대로 SMTP 릴레이가 구성된 경우 작동합니다.

0

당신의 경우에도 webconfig에서 사용자 이름과 암호를 설정하는 경우 위와 같이 호출해야합니다. 그러나 기본 메일 자격 증명을 사용하는 경우 자동으로 선택합니다 .. 그리고 발신자 용 diiferent 메일 클라이언트를 사용하는 경우 자격 증명을 전달해야합니다.

관련 문제