发送普通/文本电子邮件并在服务器的电子邮件响应中获取= 0D = 0A

Lou*_*wki 6 c# asp.net email plaintext

当我从我的网站向Uniform http://co.za注册商发送电子邮件并在邮件中发送自己的电子邮件时,我收到了他们收到的电子邮件,但是由于收到了这些有趣的字符,因此无法找到一些信息.添加到它.我看到网站上有一个上一篇文章,但没有一个答案似乎适合我,我在谷歌上尝试了很多帖子和博客.

电子邮件的整个主体是由您从注册商网站获得的模板构建的,我使用了等等作为我需要填充和替换这些模板的详细信息,然后将电子邮件的正文发送给注册商.

EX: 
1a. Complete domain name: < domainname >
gets replaces with the domain name exmaple.co.za
Run Code Online (Sandbox Code Playgroud)

我的代码:

    MailMessage emailmsg = new MailMessage("myemail@domain.co.za", "coza-admin@co.za");
            emailmsg.Subject = "N domain domain.co.za";
            emailmsg.Bcc.Add("myemail@domain.co.za");
            emailmsg.Body = Body;
            emailmsg.IsBodyHtml = false;

            var plainView = AlternateView.CreateAlternateViewFromString(Body, new     ContentType("text/plain; charset=iso-8859-1"));
            plainView.TransferEncoding = TransferEncoding.SevenBit;
            emailmsg.AlternateViews.Add(plainView);

            SmtpClient sSmtp = new SmtpClient();
            sSmtp.Send(emailmsg);
Run Code Online (Sandbox Code Playgroud)

这段代码向我自己发送一个密件抄送副本,从它的外观看起来似乎都很好,我应该是,但当他们收到它时,字符会被添加.它似乎随机添加这些字符.然后显然请求失败,因为无法找到秒名称服务器.

退回电子邮件:

Administrative Info
Contact:   Administrator=0D=0A 4b. Title/posi=   (Administrator)
Company:   CompanyName Ltd
Postal:    P.O Box 12841, Centrahill, 6006
Phone:     +27.00000000=0D=0A  4f. Fax Number: +27.00000000=

Provided Nameserver information
Primary Server  : ns1.nameserver.co.za 
Secondary 1     : ns2.nameserver.co.za=0d=0a,
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

注意:注册商要求电子邮件是纯文本而不是base64或html,因为他们的系统会选择普通/文本电子邮件和传真并自动处理它们.

谢谢

dav*_*nta 5

= OD = OA是CrLf的引用可打印表示.

如果你想使用iso-8859-1 characterset,那么你会想要摆脱这一行:

plainView.TransferEncoding = TransferEncoding.SevenBit;
Run Code Online (Sandbox Code Playgroud)

如果您坚持使用7位编码,那么您只能在电子邮件中使用ASCII字符,因此将is0-8859-1 characterset更改为"us-ascii"


Lou*_*wki 5

我想通了,把我的代码改为:

MailMessage emailmsg = new MailMessage("from@address.co.za", "to@address.co.za")
emailmsg.Subject = "Subject";
emailmsg.IsBodyHtml = false;
emailmsg.ReplyToList.Add("from@address.co.za");
emailmsg.BodyEncoding = System.Text.Encoding.UTF8;
emailmsg.HeadersEncoding = System.Text.Encoding.UTF8;
emailmsg.SubjectEncoding = System.Text.Encoding.UTF8;
emailmsg.Body = null;

var plainView = AlternateView.CreateAlternateViewFromString(EmailBody, emailmsg.BodyEncoding, "text/plain");
plainView.TransferEncoding = TransferEncoding.SevenBit;
emailmsg.AlternateViews.Add(plainView);

SmtpClient sSmtp = new SmtpClient();
sSmtp.Send(emailmsg);
Run Code Online (Sandbox Code Playgroud)

所有字符空间都保留在电子邮件模板中.希望这对某人也有帮助.