gpt4 book ai didi

c# - .NET 或 MSSMTP 在 From header 中添加换行符

转载 作者:行者123 更新时间:2023-11-30 12:16:34 25 4
gpt4 key购买 nike

我可能只是瞎了眼(很有可能!)但是我在这里/Google 上找不到任何可以帮助我的信息:(

首先,下面是我用来发送电子邮件的代码:

MailMessage newMM = new MailMessage();

newMM.To.Add(new MailAddress(userEmail));
newMM.From = new MailAddress(getFrom, getFromName);
newMM.IsBodyHtml = true;
newMM.Subject = userSubject;
newMM.Body = userHTML;
if (chkEncoding.Checked)
{
newMM.BodyEncoding = System.Text.Encoding.UTF8;
newMM.SubjectEncoding = System.Text.Encoding.UTF8;
}

NetworkCredential basicAuthenticationInfo = new NetworkCredential(mUsername, mPassword);
SmtpClient smtp = new SmtpClient(mServer);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = basicAuthenticationInfo;
smtp.Send(newMM);

哪个发送正常,启用时 UTF8 正常等......但是在生成的电子邮件中我得到这个(UTF8 或不是):

...
MIME-Version: 1.0
From: "The name i want"
<fromname@fromdomain.com>
To: someone@atadomain.com
...

这是检查 MSSMTP 队列文件夹中的文件,所以在我看来它是 .NET 添加换行符或 MSSMTP 在收到电子邮件时这样做。

有人遇到过这个吗?或者有想法? :)

修复这个问题很重要的原因是因为 Declude 说发件人地址不匹配并增加了垃圾邮件权重,我可以通过标题看到这一点:

X-RBL-Warning: FROMNOMATCH: Env sender (fromname@fromdomain.com) From: ("The name i want") mismatch.
...
X-Declude-Tests: ... FROMNOMATCH [2] ...

所以我想其他垃圾邮件过滤器也会对此提示。

编辑:

供引用;所有电子邮件在所有电子邮件客户端中看起来都很好,这纯粹是标题呈现/垃圾邮件处理器问题。

如果有人有一点空闲时间,他们是否可以使用 .NET 发送消息并检查原始 header (未经电子邮件客户端编辑和解析)并让我知道?我现在会继续卡车运输:)

编辑2:

我在 .NET 中使用套接字、基本回复(220、250、354 等)创建了一个基本的 SMTP 服务器,并使用代码连接到它并发送……问题出现了,所以这肯定是在代码/.NET 方面,而不是 MS-SMTP。

我还创建了一个全新的 .NET 4.0 Windows 应用程序,添加了一个按钮并输入了这段代码(注意我添加了 using System.Net.Mail; 到顶部,但没有其他来自空白的新 Windows 应用程序):

private void button1_Click(object sender, EventArgs e)
{
MailMessage newMM = new MailMessage();
newMM.To.Add(new MailAddress("toaddress@domain.com"));
newMM.From = new MailAddress("fromaddress@domain.com", "Happy As'Larry");
newMM.IsBodyHtml = true;
newMM.Subject = "My Subject";
newMM.Body = "My HTML";
SmtpClient smtp = new SmtpClient("localhost");
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(newMM);
}

请注意,这没有以任何方式编辑...因为它是测试 SMTP 输出应用程序的本地文件,所以不需要验证,所以它完全如上。

我的 SMTP 应用程序使用 System.Net.Sockets 中的 TcpListener 和 Socket 对象,并将所有远程数据输出到一个简单的文本框,它解析命令缓冲区的字符串,因此它可以实际回复并获取 DATA 命令以但是,请检查 .NET 发送的内容 :)

输出在这里:

EHLO WhiteDragon-PC
MAIL FROM:<fromaddress@domain.com>
RCPT TO:<toaddress@domain.com>
DATA
MIME-Version: 1.0
From: "Happy As'Larry"
<fromaddress@domain.com>
To: toaddress@domain.com
Date: 28 Feb 2011 19:00:19 +1100
Subject: My Subject
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

My HTML

.

所以有了 2 个全新的应用程序,每个应用程序都有非常基本的代码,我仍然遇到问题!

这是 .NET 4.0 错误吗?如果有人想要 SMTP 代码,如果您想检查一下,我也会粘贴它。

最佳答案

好的!

我编辑的最后一部分显示了结果。

将测试客户端应用程序切换到 .NET 3.5 并且 from header 变为:

发件人:“Happy As'Larry”

将测试客户端应用程序切换到 .NET 4.0 并且 from header 变为:

来自:“Happy As'Larry”

所以这是 .NET 4.0 库中的一个问题/更改,现在我有一个解决方案...将配置文件更改为 .NET 3.5!

感谢所有提供帮助的人:)

编辑:标签的对齐和编码...呵呵

EDIT2:此外,这已修复 Declude 的垃圾邮件检查 header ,NOFROMMATCH[2] 权重消失,因此我的电子邮件不那么“垃圾邮件”

我的建议是,如果您使用 .NET 4.0 并发送电子邮件...请检查一下!

关于c# - .NET 或 MSSMTP 在 From header 中添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137321/

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