2011-02-04 3 views
3

코드로 일반 테스트 전자 메일을 작성해야합니다. 이것은 전자 메일의 정보가 응용 프로그램에 의해 읽혀지기 때문에 필요합니다.C# mvc2 코드로 일반 텍스트 전자 메일을 작성하십시오.

이메일에 대한 설정으로 다음 값을 상수 문자열에 만들었습니다. 응용 프로그램에 필요하기 때문에 전자 메일에 넣고 싶은 필드입니다.

public static string TestMail = @" 
[Begin Message] 
Name = {0} 
Phone = {1} 
Postalcode = {2} 
HomeNumber = {3} 
[End message]"; 

아래 코드를 사용하여 전자 메일을 보낼 때 전자 메일에서 정보를 읽어야하는 응용 프로그램은 다음과 같이 수신합니다.

=0D=0A        [Begin Message]=0D=0A        Name =3D nam= 
e=0D=0A        Phone =3D 0612345678=0D=0A        Postalcode =3D = 
1234ab=0D=0A        HomeNumber =3D 5=0D=0A        [End messa= 
ge]=0D=0A       =20 

본 이메일을 보내기 위해 사용한 코드는 다음과 같습니다.

var mailBody = String.Format(Constants.TestMail, name, phone, postalCode, homeNumber); 

var mail = new MailMessage 
{ 
    Subject = Constants.Subject, 
    Body = mailBody, 
    IsBodyHtml = false, 
}; 

mail.To.Add(receveiver); 

var smtpClient = new SmtpClient(); 
smtpClient.Send(mail); 

는 내가 기대했던 결과를하지 않고 조금 주위에 파고 후 나는 문제가 여전히 내가 일반 텍스트로 필요 동안 HTML-이메일을 것으로 보인다 있다는 사실에 거짓말 발견 . 이 문제에 대해 읽는 동안 인터넷에서 VB.net의 this 예제를 발견했습니다. 그래서 저는 상수를 아래의 것으로 수정했습니다;
public static string TestMail = @"[Begin message]\r\nName = {0}\r\nPhone = {1}\r\nPostalcode = {2}\r\nHomenumber = {3}\r\n[End message]"; 

은 그 때 나는 '수 (만들려면 다음 코드를 사용하여 내 전망에 내가 이메일을 수신하고있어이 코드를 실행 한 후 내 클라이언트 (Outlook에서 테스트)

var mail = new MailMessage 
{ 
    Subject = Constants.Subject, 
}; 
var alternateView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(mailBody, Encoding.ASCII,"text/plain"); 

mail.AlternateViews.Add(alternateView); 

mail.To.Add(receveiver); 

var smtpClient = new SmtpClient(); 
smtpClient.Send(mail); 

를 이메일을 보내 현재 그 내용을 담고있는 어플리케이션 테스트)

[Start message]\r\nName = John\r\nPhone = 0612345678\r\nPostalcode = 1234ab\r\nHomeNumber = 5\r\n[End Message] 

마지막 결과는 나에게 평문 전자 메일로 보일 수 없습니다. 이메일을 표시하는 데 문제가있는 것은 Outlook 2007 뿐인가요? 아니면 아직도 뭔가 빠졌나요? 누군가가 나를 도울 수 있기를 바랍니다. 그리고 무엇이 잘못되었는지 말해 줄 수 있기를 바랍니다.

+3

@ 문자를 제거하면 어떻게됩니까? – Tx3

+0

@ Tx3 트릭을 주셔서 감사합니다! 그런 작은 것을 그리워하는 미친놈. 귀하의 의견을 답변으로 게시하면 나는 받아 들일 것입니다. – Rob

답변

4

escape characters을 올바르게 처리하므로 @ 문자를 제거해야합니다. @를 사용하면 모든 이스케이프 문자는 새 줄 대신 일반 텍스트로 처리됩니다.

+0

귀하의 회신에 감사드립니다! 그게 내 문제를 해결했다. – Rob

관련 문제