我正在向一个电子邮件地址发送邮件,该邮件地址将邮件转发给寻呼机。我发送的邮件是
“Oth info;谢谢你现在完成测试,请注意34a门 当使用CFSRES lt1“。
发送寻呼机消息时,它将打开和关闭
但客户在其寻呼机上收到
“Oth info;谢谢你现在完成测试,请注意34a门 当使用CFSRES发送寻呼机消息时,将op = en并关闭 LT1" 。
有谁知道为什么等号出现在open changed to op= en
中。我知道特殊字符有时可能会被更改,就像空格可以变成%20
,但 open 不包含任何特殊字符,所以据我所知,它不会发生任何变化。
答案 0 :(得分:4)
QP通过使用等号“=”作为转义字符来工作。它还将行长度限制为76,因为某些软件对行长度有限制。
因此,您可能会尝试将邮件拆分为多行,以防止转发器添加转义字符。
答案 1 :(得分:1)
我搜索网络并找到解决方案,这links解决了我的问题。这是一些用户满意的代码,我需要提供CreateAlternateViewFromString。
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);