gpt4 book ai didi

C# mvc2 在代码中创建纯文本电子邮件

转载 作者:行者123 更新时间:2023-11-30 15:45:46 25 4
gpt4 key购买 nike

我需要用代码创建一个简单的测试电子邮件。这是必需的,因为电子邮件中的信息将由应用程序读取。

我在常量字符串中创建了以下值作为我的电子邮件的设置。这些是我希望在电子邮件中包含的字段,因为应用程序需要它们。

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]";

然后我使用以下代码创建电子邮件并将其发送给我的客户(在 outlook 中测试)

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

运行此代码后,我在 outlook 中收到一封电子邮件(目前无法测试该应用程序),其中包含以下内容;

[Start message]\r\nName = John\r\nPhone = 0612345678\r\nPostalcode = 1234ab\r\nHomeNumber = 5\r\n[End Message]

最后的结果对我来说似乎不是纯文本电子邮件。是否只是 outlook 2007 无法显示电子邮件?还是我还缺少什么?我希望有人能帮我解决这个问题并告诉我出了什么问题。

最佳答案

您应该删除 @ 字符,因为这样它将正确处理 escape characters .如果你有 @ 那么所有转义字符都被视为纯文本而不是换行符等。

关于C# mvc2 在代码中创建纯文本电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com