问题标签 [system.net.mail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
13469 浏览

asp.net-mvc - 无法使用 smtpclient 通过 localhost iis 站点发送邮件

我有一个在本地 iis 网站上运行的 asp.net mvc 应用程序无法使用 System.Net.Mail 中的 SmtpClient 发送邮件。我正在尝试向我的 hotmail 地址发送邮件,但出现套接字异常。知道问题可能是什么吗?

这是一个例外:

我认为默认应用程序池无权访问 intepub\wwwroot。这是我在尝试测试连接时遇到的错误:

服务器配置为使用带有内置帐户的直通身份验证来访问指定的物理路径。但是,IIS 管理器无法验证内置帐户是否具有访问权限。确保应用程序池标识对物理路径具有读取权限。如果此服务器已加入域,并且应用程序池标识为 NetworkService 或 LocalSystem,请验证 \$ 是否具有对物理路径的读取访问权限。然后再次测试这些设置。

0 投票
4 回答
2459 浏览

c# - What is the best method for formatting email when using System.Net.Mail

Hi I'm using System.Net.Mail to send some HTML formatted emails.

What is the correct method for inserting css into the email message?

I know I can apply formatting to each item, but I'ld rather use style sheets..

EDIT I should have mentioned that this is for an internal application, and I expect 99% of users to be using Outlook or other client, but never hotmail or gmail etc.

0 投票
2 回答
2204 浏览

system.net.mail - System.Net.Mail.MailMessage 字段字典

我们目前正在更新应用程序的电子邮件发送部分,以用 System.Net.Mail 类替换 System.Web.Mail 下已弃用的一组类。

更改相当简单,但我们今天遇到了一个障碍,因为我们试图移植 System.Web.Mail.MailMessage.Fields 字典(包含映射到 CDO 字段的对象)的内容,但我们看不到等效的在 System.Net.Mail.MailMessage 类上。

有谁知道将 CDO 字段映射到 System.Net.Mail 类中的新类/属性的任何文档?(这是命名空间中的字段)。

0 投票
7 回答
15735 浏览

c# - 为什么 SmtpClient.SendAsync 只能调用一次?

我正在尝试使用 SmtpClient 在 .NET 中编写通知服务(用于完全合法的非垃圾邮件目的)。最初我只是遍历每条消息并发送它,但是这很慢,我想提高速度。所以,我改用“SendAsync”,但现在第二次调用时出现以下错误:

我读到这意味着 MS 削弱了 System.Net.Mail 以防止群发邮件。它是否正确?如果是这样,是否有更好的方法在 .NET 中执行此操作,并且仍然能够记录每封电子邮件的结果(这对我们的客户很重要)。如果不是,为什么 SendAsync 只能被调用一次?

0 投票
3 回答
37724 浏览

c# - System.Net.Mail 和 =?utf-8?B?XXXXX.... 标头

我正在尝试使用下面的代码通过以下代码发送消息,System.Net.Mail并且有时会收到'=?utf-8?B?W3AxM25dIEZpbGV...'(修剪)之类的主题。这是被调用的代码:

我想强调的是,这种情况并不总是发生。

我究竟做错了什么?

0 投票
2 回答
7024 浏览

.net - PickupDirectoryFromIis、Sender 属性和 SMTP MAIL FROM 信封

当您发送电子邮件时,System.Net.Mail您可以使用属性设置 SMTP MAIL FROM 信封MailMessage.Sender

如果将 smtp 网络deliveryMethod属性设置为“网络”,则使用 Sender 值设置 MAIL FROM 信封。

如果您将 smtp 网络deliveryMethod属性设置为“PickupDirectoryFromIis”,则 MAIL FROM 信封使用该MailMessage.From属性而不是 Sender 属性。

我需要保留 PickupDirectoryFromIis 作为我deliveryMethod的性能问题。

任何建议如何保持我需要的 SMTP MAIL FROM 信封的价值?

提前致谢。

0 投票
6 回答
42932 浏览

asp.net - 错误:服务器不支持安全连接

好的,我已经使用以下脚本一年多来从我的主机发送电子邮件(通过 gmail),它工作得很好(Settings.Get()只是返回字符串):

但是,从昨天开始,我收到了这个错误:

错误:服务器不支持安全连接。

现在当然我的主人认为这不是他们的错,但我没有改变任何东西。此外,它在我的本地和测试机器上仍然可以正常工作。知道是什么原因造成的,所以我可以告诉他们修复它吗?

谢谢...这让我发疯了!

0 投票
5 回答
58672 浏览

c# - 如何使用 System.Net.Mail 向电子邮件添加附件?

我有一个表示为 byte[] 的 excel 文档,我想将它作为电子邮件的附件发送。

我在构建附件时遇到了一些麻烦。

我可以创建一个具有以下构造函数的附件:

我目前的想法是从 byte[] 创建一个 MemoryStream 并将其传递给创建附件的方法。

不幸的是,我看不到从 MemoryStream 获取预期文件名和内容类型的方法,我也看不到如何提供正确的内容类型。有纯文本、Pdf、Rtf 等选项,但没有一个我可以立即跳出来作为我应该用于 Excel 文档的选项。

我能找到的最接近的是MediaTypeNames.Application.Octet,它指出:

Octet 成员指定附件包含通用二进制数据。

但是,即使这是要使用的,除非它可以作为 Stream 的属性传递,否则我发送电子邮件的方法将只能将 byte[] 作为 Excel 文档发送......

是否有其他类型的 Stream 我可以使用?或者我是否必须创建自己的 Stream 类型,其中包含我需要的详细信息。

肯定有人以前做过这件事,而且微软肯定会考虑到这个程度......

任何帮助将非常感激。

更新: 请不要投票给任何使用将文件名作为字符串的构造函数的答案。我真的需要帮助使用带流的那些......我想避免将文件写入磁盘,通过电子邮件发送,然后立即删除它。因为有一种方法可以让我做到这一点,所以我想尽可能使用那个方法。

解决方案更新

康拉德设法找到了我要找的东西!谢谢大佬!

我将仅记录建议的解决方案,以防提供的链接中的内容发生问题。

此解决方案的功劳归于 www.systemnetmail.com

就我而言,这只是意味着我必须更改我的方法以将文件名和文件格式作为字符串。我会尝试使用 Octet 的……但如果失败了,我只会传入官方的 MIME 类型。

考虑到所有因素,这是一个非常明显的解决方案……但我确实感谢解决它的帮助……而且好消息是这个解决方案将记录在案,以供未来遇到同样问题的程序员使用。

再次感谢大家的帮助!

0 投票
3 回答
5062 浏览

asp.net - 是否可以在开发服务器上使用 SmtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory?

我无法访问 IIS 开发服务器——只有生产服务器。因此,对于我的开发,我必须使用 Visual Studio 中内置的 ASP.NET 开发服务器。Failure to send message当我以这种方式配置 SMTP 客户端时,我得到了。

有什么方法可以使用开发服务器来发送消息以便我可以测试它们?

编辑:或者还有其他方法可以测试在开发服务器上发送电子邮件吗?

0 投票
3 回答
1735 浏览

c# - 通过 System.Net.Mail C# 发送邮件时出现问题

这是我的邮件发送代码。我收到“邮件标题中有无效字符”错误。当我更改我的计算机名称时,一些最短的名称。问题解决了。但是在我的域中,整个计算机名称都像“04500-ab04545.xxxdomain.gov.tr”,所以我需要为这个问题找到另一个解决方案。

因此,从 c# 代码发送邮件时,我无法提供静态计算机名称。