코드로 일반 테스트 전자 메일을 작성해야합니다. 이것은 전자 메일의 정보가 응용 프로그램에 의해 읽혀지기 때문에 필요합니다.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 뿐인가요? 아니면 아직도 뭔가 빠졌나요? 누군가가 나를 도울 수 있기를 바랍니다. 그리고 무엇이 잘못되었는지 말해 줄 수 있기를 바랍니다.
@ 문자를 제거하면 어떻게됩니까? – Tx3
@ Tx3 트릭을 주셔서 감사합니다! 그런 작은 것을 그리워하는 미친놈. 귀하의 의견을 답변으로 게시하면 나는 받아 들일 것입니다. – Rob