Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
C# 如何向我的用户发送大量电子邮件并从邮件服务器获得响应_C#_Asp.net_Email_.net 4.5 - Fatal编程技术网

C# 如何向我的用户发送大量电子邮件并从邮件服务器获得响应

C# 如何向我的用户发送大量电子邮件并从邮件服务器获得响应,c#,asp.net,email,.net-4.5,C#,Asp.net,Email,.net 4.5,我正在向大约10000名注册用户发送电子邮件。在过去,我们遇到的问题不是所有的电子邮件都被发送出去。我和邮件服务器管理员谈过,他建议我使用邮件服务器生成的独特代码来跟踪发送的每封邮件 我从oracle数据库中获取用户列表,然后一次循环一个,然后执行SmtpClient.Send()。使用SmtpClient.Send()我不确定如何返回邮件服务器响应。这是否可以通过Send()实现,或者我是否应该使用另一种SmtpClient发送电子邮件的方法来返回响应?如果您还没有,请与您的邮件提供商联系,查

我正在向大约10000名注册用户发送电子邮件。在过去,我们遇到的问题不是所有的电子邮件都被发送出去。我和邮件服务器管理员谈过,他建议我使用邮件服务器生成的独特代码来跟踪发送的每封邮件


我从oracle数据库中获取用户列表,然后一次循环一个,然后执行
SmtpClient.Send()
。使用
SmtpClient.Send()
我不确定如何返回邮件服务器响应。这是否可以通过
Send()
实现,或者我是否应该使用另一种
SmtpClient
发送电子邮件的方法来返回响应?

如果您还没有,请与您的邮件提供商联系,查看他们是否设置了任何限制/限制(为了防止垃圾邮件,我们做了很多工作,特别是如果你只为公司邮箱付费的话)。如果他们有限制,请将其构建到你的发送模块中。如果他们没有限制,发送一批批电子邮件可能仍然是一个好主意,以避免任何无声的失败

另一方面,我工作的一家公司过去经常向现有和潜在客户群发邮件。我们发现订阅MailGun这样的服务发送电子邮件很有帮助,原因如下:

  • 这些服务是用来处理电子邮件的。如果你只完成一项任务,很可能你做得很好
  • 服务提供商会跟进(让您有更好的机会避免被列入黑名单)
  • 该服务还使用了另一个域,因此,如果我们被公司阻止,我们仍然可以继续进行业务交易(“我从未收到过你的发票”-“那是因为你上个月向我们发送了垃圾邮件,我们阻止了你!”)
  • 作为额外的好处,这些服务通常提供活动管理/分析(为什么不在您工作时获得反馈)

  • 我不知道收到一个代码,但是同时发送10K电子邮件会压倒服务器,或者让它看起来像垃圾邮件。你可以考虑“分块”。将电子邮件分成更小的批,并在更大的时间范围内发送出去。我会问你的邮件服务器管理员,他是什么意思通过SMTP发送电子邮件时,没有生成任何标识符或跟踪代码。实际上,如果发送方法无一例外地通过,你就无能为力。这意味着邮件成功地传递到SMTP服务器,并且现在,Smtp服务器负责传递邮件(有时可能需要时间),但您无法在您的身边跟踪它。他告诉我,smtp服务器在收到电子邮件时会生成一个结果,并且在该结果中,他说有一个可识别的代码。在您看来,确保所有电子邮件都正确发送到邮件服务器的最佳方法是什么?使用.net 4.5?T最干净的方法是什么hank You我认为您的管理员考虑的是文字SMTP协议(例如,
    250邮件已收到
    )。收到的“消息”只是服务器的一次握手,让客户端知道它理解了请求并可以处理它(而不是最终用户已收到电子邮件)。您的SmtpClient库理解这一点,并隐式地继续(或在确认失败时排除异常).Brad我确实让我的主管与外部公司一起处理电子邮件列表。他对这个想法不太感兴趣。因此,我创建了一个等待功能,每发送500封电子邮件,就暂停电子邮件处理5秒钟。我昨晚进行了测试,结果收到了预期的全部5000封电子邮件。我现在这样做是为了看看是否收到了10000封电子邮件所有这些。如果是这样,那么这就是我将使用的方法。谢谢大家的帮助和建议。@user3523871:很高兴听到。不过,FWIW,MailGun确实提供了Brad,谢谢你提到MailGun。这看起来像是一个软件,我可以合并到我的网页中。如果我可以的话,我可能会尝试免费试用,只是为了测试一下让它正常工作。再次感谢。使用win forms应用程序会和控制台应用程序一样好吗?在发送电子邮件之前,我想添加许多选项。我正在考虑使用后台工作人员发送电子邮件,并显示有多少邮件发送到UI。您认为这种方法有任何问题吗?谢谢you@user3523871: 由你决定,但任何一方都可以发电子邮件。