SMTP 이메일 전송을 위한 MailMessage
의 읽기 전용 속성 문제 해결
문제:
SMTP를 통해 이메일을 보내는 경우 MailMessage
및 SmtpClient
클래스를 사용하는 경우가 많습니다. To
의 From
및 MailMessage
속성에 값을 직접 할당하려고 하면 일반적인 오류가 발생합니다. 이러한 속성은 읽기 전용이므로 할당 오류가 발생합니다.
잘못된 접근 방식(및 실패 이유):
다음 코드 조각은 결함이 있는 접근 방식을 보여줍니다.
<code class="language-csharp">MailMessage mail = new MailMessage(); mail.To = "[email protected]"; // Error! To is read-only. mail.From = "[email protected]"; // Error! From is read-only. // ... rest of the email sending code ...</code>
MailMessage.To
과 MailMessage.From
은 객체 생성 후 직접 할당이 가능하도록 설계되지 않았기 때문에 이런 오류가 발생합니다.
해결책:
수신자와 발신자 주소를 설정하는 올바른 방법은 MailMessage
생성자에 직접 전달하는 것입니다.
<code class="language-csharp">MailMessage mail = new MailMessage("[email protected]", "[email protected]"); // ... rest of the email sending code ...</code>
이 접근 방식은 개체 인스턴스화 중에 To
및 From
속성을 올바르게 초기화하여 읽기 전용 속성 할당 오류를 방지합니다. 수정된 전체 코드는 다음과 같습니다.
<code class="language-csharp">using System.Net.Mail; // ... other code ... MailMessage mail = new MailMessage("[email protected]", "[email protected]"); SmtpClient client = new SmtpClient(); client.Port = 25; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Host = "smtp.gmail.com"; mail.Subject = "this is a test email."; mail.Body = "this is my test email body"; client.Send(mail);</code>
생성자를 사용하여 이러한 속성을 설정하면 코드가 오류 없이 실행됩니다. 자리 표시자 이메일 주소를 실제 보낸 사람 및 받는 사람 주소로 바꾸는 것을 잊지 마세요.
위 내용은 `MailMessage.To` 및 `MailMessage.From`에 할당할 때 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!