Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从网站发送电子邮件的智能方式_Asp.net_Vb.net - Fatal编程技术网

Asp.net 从网站发送电子邮件的智能方式

Asp.net 从网站发送电子邮件的智能方式,asp.net,vb.net,Asp.net,Vb.net,我目前正在使用SmtpClient向注册或注册活动的用户发送电子邮件 当他们单击“注册”时,它会保存信息并调用“发送电子邮件”功能,但发送一封太长的电子邮件所需的时间略少于一秒钟 是否有一种方法可以保存用户信息,并在加载页面后在后台从vb调用发送电子邮件功能 我曾想过使用winform发送电子邮件,但当我使用Godaddy作为主机时,你在哪里运行它 感谢您的帮助。您可以保存用户信息,当页面加载时,您可以对服务器页面进行ajax调用,服务器页面将向用户发送电子邮件。这样做的好处是,由于它是异步的,

我目前正在使用SmtpClient向注册或注册活动的用户发送电子邮件

当他们单击“注册”时,它会保存信息并调用“发送电子邮件”功能,但发送一封太长的电子邮件所需的时间略少于一秒钟

是否有一种方法可以保存用户信息,并在加载页面后在后台从vb调用发送电子邮件功能

我曾想过使用winform发送电子邮件,但当我使用Godaddy作为主机时,你在哪里运行它


感谢您的帮助。

您可以保存用户信息,当页面加载时,您可以对服务器页面进行ajax调用,服务器页面将向用户发送电子邮件。这样做的好处是,由于它是异步的,用户不需要等待此操作完成,就可以继续站点导航中的其他操作。但它不会比你现有的方法更快

您可以使用dom
ready
函数在(重新?)加载的页面中进行如下ajax调用

$(function(){

  //Whatever code inside this will be executed only after the DOM finishes loading
   var userId=45;  //replace this with your new userId
   $.post("Emailer.aspx?userId="+userId,function(data){
      alert("Some alert message if you really want!");
   });

});

假设您有一个名为
Emailer.aspx
的页面,该页面将读取querystring参数并执行操作(发送电子邮件)。

我只会使用SmtpClient的SendAsync()方法而不是send()方法。这将允许代码在电子邮件发送之后继续,因为它会生成一个新线程来处理发送。这将节省用户等待时间。只是不要以这种方式循环发送1000封电子邮件。这可能会导致服务器产生太多线程并影响性能


您还可以研究Smtp服务“分拣目录”选项。如果您有SMTP服务器所在位置的文件写入权限,您可以将邮件“放入”该位置,以便稍后发送。

我的第一个答案是nbushnell建议的SendAsync

如果您担心1000封电子邮件,您可以在用户的数据库记录上有一个“位”字段,然后编写一个Windows服务,读取位为0的用户表,发送电子邮件,然后将位设置为1


这将消除用户等待页面加载的等待时间,但是他们接收实际电子邮件时会有延迟。

很遗憾,我不知道如何使用ajax,您是否有该函数的文档或示例?@MagedAssad:检查我的更新答案。使用jqueryajax。您需要在页面中包含jQuery库才能使用它。互联网上有很多教程可以学习jQueryAjax