방금 .NET "asp.net 페이지에서 이메일 보내기"에서 이메일 보내기에 대한 기사를 보았고 System.Web.Mail 네임스페이스 아래의 클래스가 여전히 사용되는 것을 확인했습니다. 우리 모두는 .NET 1.1에서 이 네임스페이스의 대부분의 클래스가 이메일을 보내는 데 사용된다는 것을 알고 있습니다. SmtpMail의 Send 정적 메서드를 사용하면 쉽게 이메일을 보낼 수 있지만 이 클래스는 Windows 2000 이상에서 작업을 호출하므로 시스템의 CDO 구성 요소는 오류가 무엇이든 상관없이 CDO.Message 개체에 액세스할 수 없거나 기타 CDO.Message 예외가 발생한다는 메시지가 표시되므로 디버깅에 큰 불편을 초래합니다. 특히 Smtp 검증이 필요할 때 MailMessage에 3개의 메일 헤더 정의를 추가해야 하는데, 이는 상대적으로 번거로운 작업입니다. .NET 2.0에서는 이메일 전송 기능이 매우 잘 설계되었습니다. System.Net.Mail 공간의 클래스를 사용하면 다양한 이메일을 매우 간단하게 보낼 수 있습니다. 그러나 원본 버전과의 호환성을 위해 System.Web.Mail 공간은 삭제되지 않았으며 이 공간의 클래스도 Obsolete로 표시되었습니다. 대신 System.Web.Mail 공간 클래스를 사용하라는 메시지가 표시됩니다.
이제 이메일을 보내기 위해 수행해야 할 작업을 살펴보겠습니다. 여기서는 .NET 2.0 이메일 보내기에 대한 기사인 ".NET 2.0 System.Net.Mail 네임스페이스 기반 이메일 보내기 구성 요소"를 다루고 있습니다. 메일 보내고 받기. 이번 글에서는 보내는 방법만 다루겠습니다. 구성 파일을 실제로 사용하지는 않는 것 같습니다. 또한 SmtpClient에 대한 일부 Stmp 계정 정보를 직접 지정해야 합니다. 실제로 web.config(또는 app.config)를 통해 사용할 Smtp 계정만 구성하면 됩니다.
<configuration>
<system.net>
<mailSettings>
< smtp from =" [email protected] ">
<networkhost="smtp.tom.com" 비밀번호=" " port="25" userName="hjf1223" defaultCredentials="false"/>
</smtp>
</mailSettings >
< /system.net>
</configuration>
.NET 2.0의 구성 시스템은 매우 강력하여 어떤 정보도 참조하지 않고도 위의 구성을 매우 간단하게 작성할 수 있습니다. 위와 같이 from 속성은 이메일을 보낼 메일함이고, 호스트는 SMTP 서버 주소임은 물론, defaultCredentials에 대해서는 주의할 필요가 있는 비밀번호, 포트, 사용자 이름이 있습니다. 보내는 사용자를 확인하기 위해 SMTP 서버가 필요하지 않은 경우 false로 설정하고, 그렇지 않으면 true로 설정합니다. 현재 대부분의 SMTP 서버는 사용자 인증을 요구하므로 일반적으로 true로 설정하고 사용자 이름과 비밀번호를 사용하도록 합니다. 합법적인 사용자인지 확인하도록 구성했습니다.
구성 파일을 작성한 후 다음 단계는 프로그램을 호출하는 방법입니다. 이메일을 보내기 위해 다음을 작성하고 나면 정말 간단하다는 느낌이 들 것입니다. 예, 매우 간단합니다. 살펴보겠습니다.
MailMessage m_message = new MailMessage();
m_message.From = new MailAddress(" [email protected] ");
m_message.To.Add(new MailAddress(" [email protected] ) "));
m_message.Subject = ".NET 2.0을 사용하여 메일 보내기";
m_message.Body = "매우 간단함";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
추가 항목이 하나도 없습니다. 코드 줄은 MailMessage 개체를 구성한 다음 SmtpClient를 구성하고 이를 사용하여 이메일을 직접 보내는 것입니다. 원래의 정적 메서드와 비교하면 더 이상 코드가 없습니다. 여기 몇몇 친구들이 물어보고 싶어할까요? SMTP 계정 정보는 어디에서 나오나요? 실제로 디버깅할 수 있습니다. 이때 m_smtpClient 개체의 속성은 이전 구성 파일에서 구성한 값입니다. SmtpClient를 재구성할 때 system.net 구성 섹션 아래의 값을 자동으로 읽습니다. 사용자가 smtp 정보를 구성한 경우 자동으로 현재 SmtpClient 개체로 전송된 후 이메일을 보내는 데 사용됩니다. .NET 2.0에서 이메일을 보내는 것은 작업이 너무 많고 매우 안정적입니다.
요약: .NET 2.0에서는 System.Web.Mail을 사용하여 이메일을 보내는 것이 매우 간단하고 오류가 발생할 때 더 자세한 예외 정보를 얻을 수 있지만 때로는 문제로 인해 혼란스러울 수 있습니다. 가장 흔히 발생하는 일은 컴퓨터에 안티 바이러스 방화벽이 설치되어 있으면 이메일을 보낼 수 없지만 프롬프트 메시지로 인해 문제를 진단할 수 없다는 것입니다. 주된 효과는 이메일이 거부된다는 것입니다. 이러한 상황은 방화벽이 포트 25 사용을 거부하여 SMTP 서버와 정상적으로 통신할 수 없기 때문에 발생합니다. 해결책은 인터넷에 많은 경우가 있다고 생각합니다. 또 특별히 주의해야 할 점은 이메일을 보내는 기기가 외부 네트워크에 직접 연결되어 있어야 한다는 점이다. 회사가 프록시를 통해 인터넷에 접속하기 때문이다. 위 코드에서 주의할 점이 하나 더 있는데, MailMessage 개체의 From 값은 구성 파일의 From 값과 동일해야 합니다. 여기서는 설정할 필요가 없는 것 같습니다.
좋습니다. 코드는 다음과 같습니다. http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html 도움이 되기를 바랍니다.