2016-11-04 2 views
0

system.net> mailSetttings> smtp 태그의 from 섹션에있는 응용 프로그램 구성 파일의 "보낸 사람"주소를 지정했습니다.응용 프로그램 구성 파일에 지정된 "보낸 사람"주소를 사용하여 .net에서 smtp 메시지를 보내는 방법은 무엇입니까?

그러나 분명히 MailMessage 생성자의 코드에서 "보낸 사람"주소를 지정해야합니다. 코드에서 수행 할 때 코드의 주소가 구성 파일의 주소를 덮어 씁니다. 구성 파일의 "보낸 사람"주소를 사용하려면 어떻게해야합니까? null 또는 빈 문자열을 사용하면 예외가 발생합니다.

코드 : 당신은 메일 메시지에서 프록시 클래스를 작성할 수 있으며,이 클래스에서 당신이 값 : 간단하고 추한 솔루션을하지만, 아주 쉬운 :

답변

1

이있어 :

//use the constructor without parameters   
MailMessage notificationMessage = new MailMessage() 
{ 
    Subject = subject, 
    Body = messageBodyText, 
    IsBodyHtml = false, 
    SubjectEncoding = Encoding.UTF8, 
    BodyEncoding = Encoding.UTF8, 
}; 
//add the To address later 
notificationMessage.To.Add(toAddress); 
//from not specified, the default value from the app/web.config will be used. 
+0

좀 더 우아하고 게으른 것을 원합니다. 그렇지 않으면 구성 파일에서 사용자 정의 모음을 사용할 수 있습니다. 결국, 당신이 그것을 사용할 수 없다면이 "from"속성은 무엇입니까? :) – Greg

+0

예를 들어 "보낸 사람"이 기본값입니다. "[email protected]"이 매개 변수는 생성자에서 마지막으로 사용할 수 있으며 선택 사항 일 수 있습니다. :) 예.이 해결 방법은 매우 추악하며 반드시 todo 태그 여야합니다. :) –

0

에서 기본을 하드 코딩 할 수

MailMessage notificationMessage = new MailMessage(/*cannot be null or empty here!*/null, toAddress) 
{ 
    Subject = subject, 
    Body = messageBodyText, 
    IsBodyHtml = false, 
    SubjectEncoding = Encoding.UTF8, 
    BodyEncoding = Encoding.UTF8 
};