2011-02-04 14 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]"; 

その後、私は(見通しのテスト)を作成するには、次のコードを使用して、私のクライアントに電子メールを送っ

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] 

最後の結果は、私には普通のテキストメールではありません。それはちょうど見通しが2007年にメールを表示するのに問題がありますか?または私はまだ何かを欠いている?誰かが私をここで助けて、何がうまくいかないか教えてくれることを願っています。

+3

@文字を削除するとどうなりますか? – Tx3

+0

@ Tx3トリックはありがとう!そんな小さなことを見逃すミーの馬鹿。あなたが回答としてあなたのコメントを投稿すれば私は受け入れるよ – Rob

答えて

4

escape charactersを正しく処理するため、@文字を削除する必要があります。 @をお持ちの場合、エスケープ文字は改行の代わりにプレーンテキストとして扱われます。

+0

あなたのお返事ありがとう!それが私の問題を解決した – Rob

関連する問題