【问题标题】:schedule Email in asp.net, C#在 asp.net、C# 中安排电子邮件
【发布时间】:2011-01-24 23:35:45
【问题描述】:

我想用 asp.net 和 C# 代码安排电子邮件。

日程安排邮件的基本思路或代码是什么?

【问题讨论】:

  • @Will,您为什么不能安排稍后发送电子邮件?这是一个完全合法的要求——他们可能希望在早上 6 点从他们的站点发送一封电子邮件,但不想在那个时候实际按下“发送”。电子邮件将被提前设置、测试等,然后安排发送,以便它在用户收件箱中很早。
  • @zaph 好吧,假设一分钟这就是他实际提出的问题(我自己对此有分歧)。您必须 1) 编写一个发送电子邮件的应用程序,然后 2) 将这些电子邮件传递给应用程序。我想我评论的主旨是你不能神奇地安排一封电子邮件。是的,您可以创建一个在以后发送电子邮件的应用程序,但您必须编写该应用程序。此外,整个网站都在欺骗。

标签: c# asp.net email


【解决方案1】:

尝试编写一个简单的控制台应用程序来发送电子邮件,并在需要时使用 Windows 任务计划程序运行它。发送电子邮件是一项非常标准的任务,就像 Will 所说的,这里已经有很多与之相关的类似问题,但是如果您查看 System.Net.Mail 命名空间,那应该可以帮助您入门。

【讨论】:

  • 我不想一直启动我的电脑。我想在我的托管服务器上设置。我留在印度和美国的服务器。我不能在他们那里安装任何手动软件或控制台应用程序。那我该怎么办?
  • 如果我理解正确,您想在无法安装任何软件的服务器上发送一封电子邮件?我认为您唯一的选择可能是 Albert 选择从 SQL 作业运行它。
【解决方案2】:

你可以有一个数据库表 EmailSchedule(ID, SendTo, Subject, MessageBody, SendDateTime) 当您想安排发送电子邮件时,请写信到表格中。

然后有一个进程每 x 分钟运行一次,并发送 SendDateTime 的所有电子邮件

【讨论】:

  • 虽然到目前为止这两个答案都有效,但我过去发现在数据库中设置一个启动此过程的作业比使用计划任务更容易配置和设置。
【解决方案3】:

您可以在 SQL 中创建一个名为 mailToBeSent 的表或类似的东西...每次您要安排电子邮件时,将包含所有适当数据元素(主题、收件人、抄送、正文等)的电子邮件插入到该表中(消息,并删除成功的记录。

我认识使用此设置的人,它运行良好。不幸的是,我没有他的代码,但是在谷歌上搜索每个过程的每个部分可能会证明是富有成效的。

这是一个开始:http://www.google.com/search?&q=how+to+use+sql+job+table+to+send+emails 第一组链接看起来不错。如果您开始走这条路并需要更多帮助,请告诉我们。

【讨论】:

  • 哎哟。有人能告诉我为什么这是一个坏建议吗?我们将这种方法用于几个应用程序,并且效果很好......它有什么问题?
【解决方案4】:

区分电子邮件发送的最简单方法是在 Windows 计划任务工具中安排任务。 此任务是对 vbs 文件的简单调用。 此 vbs 文件从您的 Web 应用程序中打开一个 url。 在这个 url 后面,放置一个网页,在应用程序中完成您的预定工作,在这种情况下,发送电子邮件。 它不需要windows服务,只需要一个简单的vbs。 被调用的页面在您的应用程序中,因此无需做一些额外的工作来接口数据或在 Web 应用程序之外进行处理。

希望这会有所帮助,

问候,

皮埃尔。

【讨论】:

    【解决方案5】:

    也许使用调度程序? Quartz.NET 是一个相当不错的人。

    我假设您已经知道如何发送邮件,所以只需安排一份新工作,然后继续工作。

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 2020-02-23
      • 2019-03-31
      • 2012-07-27
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      相关资源
      最近更新 更多