我将通过邮件机制将客户端的故障转储转移给我。因此,我无法使用任何公共SMTP服务器,因为使用该应用程序打包任何帐户的凭据是不可接受的。
因此,我需要通过我的应用程序将邮件直接发送到目标邮件服务器。
如何在python中实现这一目标? (我正在使用Windows,因此sendmail
不是一个选项)
答案 0 :(得分:2)
只需在标准库中使用smtplib
。
尝试编写可以向任何人发送邮件的代码是有问题的,因为smtplib
连接到服务器客户端到服务器样式而不是服务器到服务器中继样式。
但是如果您只需要将邮件发送到您控制的某个特定服务器,那就太简单了。只需在'mail.example.com'配置您的服务器即可接受来自'crash-reports@example.com'的任何邮件到'crash-reports@example.com'。
您的代码将如下所示:
import smtplib
addr = 'crash-reports@example.com'
def send_crash_report(crash_report):
msg = ('From: {}\r\nTo: {}\r\n\r\n{}'.format(
addr, addr, crash_report)
server = smtplib.SMTP('mail.example.com')
server.sendmail(addr, [addr], msg)
server.quit()
作为旁注,如果您刚开始使用崩溃报告收集器,则可能需要考虑使用Web服务而不是邮件地址。您将遇到无法通过公司防火墙/代理访问端口25,编写从收件箱中提取崩溃报告的代码(和/或通过IMAP或mbox或其他搜索)的问题,处理垃圾邮件发送者问题谁以某种方式找到crash-reports@example.com
,并为每个实际崩溃报告等提供900条关于Cialis的消息。