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

当我从我的网站发送一封电子邮件给Uniform http://co.za注册商并在邮件中发送自己的电子邮件时,我收到一封他们收到电子邮件的电子邮件,但找不到一些信息,因为它有这些有趣的字符添加到它。 我看到网站上有一篇上一篇文章,但没有一个答案似乎对我有用,我在google上尝试了很多post和博客。

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

EX: 1a. Complete domain name:  gets replaces with the domain name exmaple.co.za 

我的代码:

  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); 

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

退回电子邮件:

 Administrative Info Contact: Administrator=0D=0A 4b. Title/posi= (Administrator) Company: CompanyName Ltd Postal: PO 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, 

任何帮助,将不胜感激。

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

谢谢

我想通了,把我的代码改成了以下内容:

 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); 

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

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

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

 plainView.TransferEncoding = TransferEncoding.SevenBit; 

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