发送纯文本邮件,从服务器得到的邮件响应=0D=0A

本文关键字:响应 0A 0D 文本 服务器 | 更新日期: 2023-09-27 18:13:56

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

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

EX: 
1a. Complete domain name: < domainname >
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);

这个代码发送密件副本给我自己,从它的外观通过outlook似乎都很好,我应该是,但当他们收到它的字符被添加。这些字符似乎是随机添加的。然后很明显请求失败,因为无法找到第二个名称服务器。

返回电子邮件:

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,

如有任何帮助,不胜感激。

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

谢谢

发送纯文本邮件,从服务器得到的邮件响应=0D=0A

我明白了,把我的代码改成如下:

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是crf的引号可打印表示。

如果您想使用iso-8859-1字符集,那么您将需要删除这一行:

plainView.TransferEncoding = TransferEncoding.SevenBit;

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