我目前使用SmtpClient将电子邮件发送给注册或注册活动的用户。从网站发送电子邮件的智能方式
当他们点击注册时,它会保存信息并调用发送电子邮件功能,但发送太长时间的电子邮件需要稍微少于一秒的时间。
有没有一种方法可以保存用户信息,并且在页面加载后,它会在后台调用vb的发送电子邮件功能。
我想过使用winform发送电子邮件,但是当我使用Godaddy托管时,它在哪里运行?
感谢您的帮助球员。
我目前使用SmtpClient将电子邮件发送给注册或注册活动的用户。从网站发送电子邮件的智能方式
当他们点击注册时,它会保存信息并调用发送电子邮件功能,但发送太长时间的电子邮件需要稍微少于一秒的时间。
有没有一种方法可以保存用户信息,并且在页面加载后,它会在后台调用vb的发送电子邮件功能。
我想过使用winform发送电子邮件,但是当我使用Godaddy托管时,它在哪里运行?
感谢您的帮助球员。
我只是使用SmtpClient的SendAsync()方法与Send()方法。这将允许代码继续通过电子邮件发送,因为它产生了一个处理发送的新线程。这节省了用户的等待时间。只是不要以这种方式在循环中发送1000封电子邮件。它可能会导致您的服务器产生太多线程并阻碍性能。
您也可以研究Smtp服务“Pickup Directory”选项。如果您具有SMTP服务器所在位置的文件写入权限,则可以将邮件“放置”到稍后发送。
您可以保存用户信息,当页面加载时,您可以对服务器页面进行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
页面,它将读取查询参数和做动作(发送电子邮件)。
我的第一个答案将是SendAsync通过nbushnell
的建议。如果你有电子邮件1000的担心,你可以对用户的数据库记录中的“位”字段,然后写一个Windows服务,读取位为0的用户表发送电子邮件,然后将该位设置为1
这消除了等待加载页面的用户的等待时间,但是他们在接收实际电子邮件时会有延迟。
不幸的是我不知道如何使用ajax,你有这个函数或者一个例子的文档吗? –
@MagedAssad:检查我的更新答案。使用jQuery ajax。你需要在你的页面中包含jQuery库来使用它。在互联网上有大量的教程来学习jQuery ajax – Shyju