群发邮件在Asp.Net HTML通讯

问题描述:

我正在开发一个网站,我需要发送HTML通讯到邮件列表。群发邮件在Asp.Net HTML通讯

我已经建立了一个html框架,我有我的“在浏览器中查看”和“取消订阅”链接(哪些原因会有所不同)。在管理模块中,我发布html并上传html-newsletter的图片。这是做这件事的好方法吗?

我该如何发送电子邮件给XX.XXX人?我无法使用BCC,因为取消订阅链接会有所不同。所以我想我必须单独发送所有的电子邮件。但是,代码应该是错误的,所以如果出现错误,只有一半的代码可以得到通讯。

最好的问候, 拉塞

希望这些都是有益的:

  1. 使用MailDefinition作为模板引擎http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.maildefinition.aspx如果数量很大,你可能会考虑不使用SMTP作为传输协议,而是生成文件每封电子邮件要发送,然后将它们直接放入SMTP服务器的“Drop”文件夹中。 Mirosoft SMTP服务器很容易实现。

  2. 为每封电子邮件使用一个唯一的反弹电子邮件地址(但包括回复真实地址,例如office(at)yourdomain.com。让那些反弹电子邮件地址指向一个普通帐户,之后发送你的新闻通讯删除从你的数据库中弹出的所有地址。

  3. 至于容错,我不认为我很理解你为什么只想要一半通讯?我会捕捉任何服务器相关的问题和立即停止处理,并且任何客户端相关问题(客户端的电子邮件不起作用,请参见2.)都会被跳过并记录(如果在处理过程中检测到)或稍后处理(如果稍后检测到)

  4. 根据当地法律检查选择加入/退出策略。

  5. 另外看看直接将图像嵌入到html中(一个不为人知的事实是,您可以直接在其中嵌入图像),这通常会使电子邮件大小变大,但它会让Outlook直接显示这些图像,而不会直接你的服务器。当然,如果你想通过图像灯塔或类似的通讯跟踪,那么服务器图像就是你想要的。

  6. 当然,检查所有常见的电子邮件客户端正确显示。据我所知几乎是不可能的,除非您发送纯文本:)

+0

1.我会研究它:) 2.应该指出,我使用的是一个webhotel而不是我自己的服务器。但不能失败的电子邮件地址不被处理? 3.我的英语不太好,所以我觉得你误会了我。我不想发送一半的通讯。但是,如果我有一个for-loop向每个电子邮件地址发送一封电子邮件,如果它在for-loop内部失败会发生什么? 5.我知道,但我不想在我的webhotel上发送大量的电子邮件。 6.是的:) 我不认为我会一次发送超过3-5000封电子邮件,但我会很高兴成为未来的保障。 – 2009-10-03 11:24:44

+0

2.并非总是如此。通常情况下,您发送给的SMTP服务器只会发出“未找到收件人”,如果它是知道所有收件人的单一服务器系统。采取更大的系统,并且传入的服务器不知道该帐户。 3.只需将try catch放入循环中并记录错误。然后尝试然后发送邮件发送catch(日志)然后结束。 5.好的,然后服务器端图像可能是唯一的解决方案,但很多提供商最初不会显示它们,除非用户决定信任发送电子邮件地址的通讯。 – 2009-10-03 11:32:54

+0

好的,谢谢你的帮助:) – 2009-10-03 22:09:57

是的,你将需要一个发送的电子邮件之一,如果你想有一个独特的退订链接为每一个客户。如果您在输入电子邮件的人们可以退订的页面上放置一个文本框,您可以将相同的电子邮件发送给每个人。

至于发送的电子邮件,你有正确的想法。您需要将图像托管在您的服务器上,并从您的HTML中调用这些图像。

html必须是基本的html 3.0或类似的东西。这将确保大多数电子邮件客户端将正确呈现您的电子邮件。

在制作邮件列表时要特别小心,它可能非常容易被某些服务器(如google或hotmail)禁止。

+0

我能做到这一点,以发送每一位客户将正确显示的格式,但文本框是坏userexperience:/当我将多个不同的电子邮件服务器会不会最终超时? – 2009-10-03 11:27:07

+0

我同意文本框是不好的用户exprience,但它也是一个很好的方式来保持邮件列表上的懒惰的人 – 2009-10-05 07:54:13