【发布时间】:2018-05-29 04:44:28
【问题描述】:
我正在将一个 shell 脚本转换为 python。在我的 python 代码中,当我尝试发送电子邮件时,我收到错误消息。我是 python 新手。请帮我解决这个问题。
外壳代码:
id=`whoami`
userid_list=2nd_user
SUBJECT=mail
echo "Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
From: $id
To: $userid_list
Subject: $SUBJECT
" > $email
SENDMAIL=/usr/lib/sendmail
$SENDMAIL -oi -t < $email
python 代码:
sender_id = getpass.getuser()
userid = getpass.getuser()
content = """Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
From: """ + sender__id + """
To: """ + userid + """
Subject: mail"""
email= "/tmp/mail"
with open(email, 'a') as f:
f.write(content)
SENDMAIL = "/usr/lib/sendmail"
subprocess.call(SENDMAIL + " -oi -t < " + email, shell=True)
错误信息:
sendmail: fatal: vijay(1254164854): 在邮件头中找不到收件人地址
【问题讨论】:
-
在 shell 代码中,使用相同的用户(发件人和收件人邮件 ID),它可以正常工作
-
我希望这只是一个错字,但是您的内容变量中的
sender__id有两个下划线,而不是原来声明的sender_id只有一个。 -
@James Joyce Alano。是的,它奏效了。感谢您的帮助
-
你能检查一下它在
/tmp/mail中写的内容吗?也许这可能是一个提示。 -
@Learner 很高兴能提供帮助。我可以将其发布为官方答案吗?
标签: bash python-2.7 email subprocess