当前位置: 首页 > 面试题库 >

通过sendmail从python发送邮件

茅慈
2023-03-14
问题内容

如果我不想通过SMTP而是通过sendmail发送邮件,是否有用于封装此过程的python库?

更好的是,是否有一个好的库可以抽象整个“ sendmail -versus- smtp”选择?

我将在大量的Unix主机上运行此脚本,其中只有一些在localhost:25上侦听;其中一些是嵌入式系统的一部分,不能设置为接受SMTP。

作为优良作法的一部分,我真的很想让库自己解决标头注入漏洞-因此,仅将字符串转储popen('/usr/bin/sendmail', 'w')到比我想要的金属更近的位置。

如果答案是“去写一个库”,那就去吧;-)


问题答案:

标头注入不是发送邮件的方式,而是构建邮件的方式。检查电子邮件包,使用该电子邮件包构造邮件,对其进行序列化,然后/usr/sbin/sendmail使用子流程模块将其发送至:

import sys
from email.mime.text import MIMEText
from subprocess import Popen, PIPE


msg = MIMEText("Here is the body of my message")
msg["From"] = "me@example.com"
msg["To"] = "you@example.com"
msg["Subject"] = "This is the subject."
p = Popen(["/usr/sbin/sendmail", "-t", "-oi"], stdin=PIPE)
# Both Python 2.X and 3.X
p.communicate(msg.as_bytes() if sys.version_info >= (3,0) else msg.as_string())

# Python 2.X
p.communicate(msg.as_string())

# Python 3.X
p.communicate(msg.as_bytes())


 类似资料:
  • 本文向大家介绍linux下python使用sendmail发送邮件,包括了linux下python使用sendmail发送邮件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python使用sendmail发送邮件的具体代码,供大家参考,具体内容如下 参考链接:How do I send mail from a Python script? 使用linux下的sendmail程序来发

  • 问题内容: 我正在使用。 使用发送电子邮件(通过)的最佳方法是什么? 问题答案: 有关使用Outlook的解决方案,请参见下面的TheoretiCAL答案。 否则,请使用python随附的smtplib。请注意,这将要求您的电子邮件帐户允许smtp,默认情况下不一定启用此功能。 编辑: 此示例使用保留域,如RFC2606中所述 为了使它真正与gmail配合使用,Doe先生需要进入gmail中的选项

  • 本文向大家介绍python smtplib模块实现发送邮件带附件sendmail,包括了python smtplib模块实现发送邮件带附件sendmail的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python smtplib实现发送邮件的具体代码,供大家参考,具体内容如下 从网上找了些资料,不会有个别错误,上面代码经调试测试通过。 以上就是本文的全部内容,希望对大家的学习有所帮

  • 本文向大家介绍python通过smpt发送邮件的方法,包括了python通过smpt发送邮件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python通过smpt发送邮件的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 我有一个Glassfish v3应用程序可以发送电子邮件。多年来它一直运行良好,但从7月2日开始,它在java.net.UnknownHostException中失败了。 下面请找到我的JavaMail配置和Glassfish日志条目。 任何想法都将不胜感激。 JavaMail会话配置 邮件主机:imap.gmail.com 默认用户:mailrobot-se@s****x.se 默认返回地址:m

  • 我有一个代码,就像半年前一样工作。它基本上发送电子邮件。 这是例外 (534, b'5.7.14 5.7.14 KL7\u 2qGSLW9IBjP8dKKgP67bEgyKNc5ls76dnVDZcUlVQjJUQb0JX9BIVi\u Agb84vKNOKB 5.7.14fshB0ngZ_Tn8ocDpDHKavRKXmluVjHo5YM7ADKENtWn4aVTxyvaBlbXRGpA1EBh