【发布时间】:2012-06-30 17:07:31
【问题描述】:
我正在尝试创建一个发送电子邮件的简单 python 脚本。我使用了以下代码:
import subprocess
params = {'from': 'from@example.com',
'to': 'to@example.com',
'subject': 'Message subject'}
message = '''From: %(from)s
To: %(to)s
Subject: %(subject)s
Message body
''' % params
sendmail = subprocess.Popen(['/usr/share/sendmail', params['to']])
sendmail.communicate(message)
但是当我尝试运行它时收到以下错误消息:
Traceback (most recent call last):
File "/home/me/test.py", line 15, in <module>
sendmail = subprocess.Popen(['/usr/share/sendmail', params['to']])
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
谁知道这个问题的解决方案,或者更好的代码?
谢谢!
【问题讨论】:
-
您可以使用内置的 smtp 库 docs.python.org/library/email-examples.html,而不是调用 sendmail 二进制文件
-
有什么特殊原因不使用python的
smtplib或email模块? -
对我来说它没有抛出上述错误。在我的系统中,sendmail 位于 /usr/sbin/sendmail,只需从命令提示符中检查您是否可以发送邮件。
-
@guidot 不,我没有特别的理由愿意接受建议。
-
@tuxuday 我把它移到 /usr/sbin/sendmail 没有结果:/