GVKun编程网logo

.NET发送电子邮件的最佳方法(System.Net.Mail有问题)(.net 发送邮件)

13

在本文中,您将会了解到关于.NET发送电子邮件的最佳方法(System.Net.Mail有问题)的新资讯,同时我们还将为您解释.net发送邮件的相关在本文中,我们将带你探索.NET发送电子邮件的最佳方

在本文中,您将会了解到关于.NET发送电子邮件的最佳方法(System.Net.Mail有问题)的新资讯,同时我们还将为您解释.net 发送邮件的相关在本文中,我们将带你探索.NET发送电子邮件的最佳方法(System.Net.Mail有问题)的奥秘,分析.net 发送邮件的特点,并给出一些关于asp.net – System.Net.Mail新MailMessage随机发送重复的电子邮件?、asp.net – 在中等信任下,在GMail SMTP上发送电子邮件、asp.net – 检查该电子邮件地址是否适用于System.Net.Mail.MailAddress、asp.net-mvc – 从Asp.net MVC发送HTML电子邮件的最佳方式是什么?的实用技巧。

本文目录一览:

.NET发送电子邮件的最佳方法(System.Net.Mail有问题)(.net 发送邮件)

.NET发送电子邮件的最佳方法(System.Net.Mail有问题)(.net 发送邮件)

这似乎很简单。我需要从一些ASP.NET应用程序发送电子邮件。我需要做到这一点,没有奇怪的错误,没有cpu利用率通过屋顶。我不是在说大量的电子邮件,只是偶尔的电子邮件。

System.Net.Mail看起来很可怕。 SmtpClient不会发出Quit命令(这可能是因为Microsoft(R)对以下规范不感兴趣),因此连接将保持打开状态。因此,如果有人尝试在该连接终止之前发送电子邮件,则可以从SMTP服务器收到有关打开的连接数太多的错误信息。这是Microsoft(R)完全不感兴趣的错误。看这里:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=146711

另外,如果你环顾一些建议使用这个代码来解决这个问题:

smtpClient.ServicePoint.MaxIdleTime = 1;
smtpClient.ServicePoint.ConnectionLimit = 1;

好的,是的,“解决”连接被打开的问题。但是,如果您愿意,可以在服务器上尝试这样做,导致进程(在这种情况下为w3wp.exe)正在运行的cpu跳转并保持100%,直到应用程序池被回收为止。无论什么原因,运行mscorwks.dll!的线程是CreateApplicationContext的罪魁祸首。

这具有非常好的副作用,如果您运行在持续100%cpu使用率的Web主机上,您将使您的应用程序池被禁用。所以这不像一些建议那么微不足道。

所以我的问题是怎么办?我需要做的是如此简单;然而,让这些“连接打开太多”的错误是不可接受的,100%的cpu使用率也是不可接受的。我不想购买第三方组件,而不是因为我很便宜,但是我购买了足够的组件和MSDN订阅,似乎很疯狂,为了简单的SMTP功能,需要支出$ 100- $ 300。

我看到设置MaxIdleTime更高可以帮助,但我怀疑。我不想让我的应用程序池被禁用,因为Microsoft不想遵循SMTP规范。

编辑:我查看了quiksoft.com组件,但它不支持SMTP身份验证,费用为$ 500。必须要解决这个问题。

解决方法

我遇到与所描述的设置相同的cpu利用率问题。我最终用微软打开一张机票来确定问题的原因。 cpu利用率问题在于ServicePoint类。在ServicePoint类内部,有一个运行每个(MaxIdleTime / 2)毫秒的计时器。看到问题?通过将MaxIdleTime值更改为2,cpu利用率将下降到正常水平。

asp.net – System.Net.Mail新MailMessage随机发送重复的电子邮件?

asp.net – System.Net.Mail新MailMessage随机发送重复的电子邮件?

我使用下面的代码生成一封电子邮件.出于某种原因,随机发送重复的电子邮件.它不会一直发生,一个月只发生几次.您是否看到了可能导致此问题的代码?当用户单击页面上的提交按钮时会触发它.我可以添加一些东西来防止这种情况发生吗? TIA
Try
    Dim Attachment As String
    Attachment = path + myUniqueFileName

    Dim mailMessage As MailMessage = New MailMessage
    mailMessage.From = New MailAddress("Test@Test.com")
    mailMessage.Subject = "Report " + " " + myUniqueFileName
    mailMessage.IsBodyHtml = True
    mailMessage.To.Add(New MailAddress(Session("EmailAddress")))
    mailMessage.Attachments.Add(New Attachment(Attachment))
    mailMessage.Body = "Attached is your report"

    Dim smtp As SmtpClient = New SmtpClient

    smtp.Host = "mail.net"

    Dim NetworkCred As System.Net.NetworkCredential = New System.Net.NetworkCredential

    smtp.Credentials = New NetworkCredential("test","test")
    smtp.UseDefaultCredentials = False
    smtp.Send(mailMessage)

Catch ex As Exception

    Dim message As String = ex.ToString
    Dim sb As New System.Text.StringBuilder()
    sb.Append("<script type = 'text/javascript'>")
    sb.Append("window.onload=function(){")
    sb.Append("alert('")
    sb.Append(message)
    sb.Append("\n")
    sb.Append(String.Format("{0:f2}",Convert.Todouble(TotalAmount)))
    sb.Append("')};")
    sb.Append("</script>")
    ClientScript.RegisterClientScriptBlock(Me.GetType(),"alert",sb.ToString())

End Try

图像按钮代码:

<asp:ImageButton ID="cmdFinish" runat="server" Height="38px" ImageUrl="~/Images/Finish.png" Width="99px" UseSubmitBehavior="false" OnClientClick="this.disabled = true; this.value = 'Sending...';" Text="Send" />

解决方法

我之前遇到过同样的问题,所以我想我可能会分享我的解决方案:

这是我按钮的标记代码,以避免再次重新点击它:

<asp:Button ID="btnSend" runat="server" CssWidth="150px" UseSubmitBehavior="false" OnClientClick="this.disabled = true; this.value = 'Sending...';" Text="Send" />

注意OnClientClick =“this.disabled = true; this.value =’发送…’.

它将禁用您的按钮并在单击后更改其文本.

此外,为了避免在刷新页面时重新保存/重新提交/重新发送数据,我只是回忆起我的表单:

Response.Redirect("~/yourForm.aspx")

asp.net – 在中等信任下,在GMail SMTP上发送电子邮件

asp.net – 在中等信任下,在GMail SMTP上发送电子邮件

我需要从我的应用程序发送一封电子邮件,该邮件将以中等信任状态运行.我目前的电子邮件发送代码在完全信任下工作正常,在中等信任下抛出SecurityException
[SecurityException: Request for the permission of type 'System.Net.Mail.SmtpPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089' Failed.]

检查我的machine.config和相关文件显示我的SMTP访问仅限于Connect.

<SecurityClass Name="SmtpPermission" Description="System.Net.Mail.SmtpPermission,PublicKeyToken=b77a5c561934e089"/>

<IPermissionversion="1" Access="Connect"/>

根据MSDN,Connect只允许端口25上的请求.但是Gmail服务器可以在端口587上工作.任何解决方法?建议?

解决方法

Gmail也接受25号港口; 你只需要25号港口; 它为我工作

asp.net – 检查该电子邮件地址是否适用于System.Net.Mail.MailAddress

asp.net – 检查该电子邮件地址是否适用于System.Net.Mail.MailAddress

目前,为避免由于电子邮件地址无效而引起的错误,请执行以下操作:
Dim mailAddress As MailAddress
Try
   mailAddress = New MailAddress("testing@invalid@email.com")
Catch ex As Exception
   'Invalid email
End Try

但是,而不是依赖于Try..Catch,是否有一种验证电子邮件地址对于MailAddress类型是100%有效的方法?

我知道有大量正则表达式函数用于验证电子邮件,但我正在寻找MailAddress类型用于验证其地址的函数。

解决方法

不幸的是没有MailAddress.TryParse方法。

您的代码是验证.Net中电子邮件地址的理想方式。

asp.net-mvc – 从Asp.net MVC发送HTML电子邮件的最佳方式是什么?

asp.net-mvc – 从Asp.net MVC发送HTML电子邮件的最佳方式是什么?

我希望能够呈现视图并将其作为电子邮件发送,类似于 Ruby on Rails可以完成的任务.做这个的最好方式是什么?

编辑:到目前为止我的解决方案是使用模板引擎(NHaml,StringTemplate.net).它有效,但我不希望在我的网站上有第二个模板引擎.

解决方法

一旦 mvc-preview-5-rendering-a-view-to-string-for-testing后的答案中有解决方案,该解决方案也适用于此解决方案.一旦你有一个字符串,你可以使用默认的.net邮件选项(如dimarzionist:SendMail / SmtpClient所示)发送邮件.

我们今天的关于.NET发送电子邮件的最佳方法(System.Net.Mail有问题).net 发送邮件的分享已经告一段落,感谢您的关注,如果您想了解更多关于asp.net – System.Net.Mail新MailMessage随机发送重复的电子邮件?、asp.net – 在中等信任下,在GMail SMTP上发送电子邮件、asp.net – 检查该电子邮件地址是否适用于System.Net.Mail.MailAddress、asp.net-mvc – 从Asp.net MVC发送HTML电子邮件的最佳方式是什么?的相关信息,请在本站查询。

本文标签: