首页 > 解决方案 > ssmtp 无法通过电子邮件发送从 python 子进程收到的我的 bash 变量

问题描述

我在 python 脚本中使用 subprocess 将变量发送到旨在发送电子邮件的 bash 脚本中。

我的python代码:

import re
import subprocess
message="https://example.com/"
subprocess.run(["./send_email.bash",message])

我的“./send_email.bash”脚本:

#!/bin/bash
body=$1
echo "$body" | ssmtp example@gmail.com

它一直发送一封空白电子邮件。但是,如果我使用不是来自子进程的字符串,则电子邮件包含它。可能有更好的方法来做到这一点,但我的帖子的重点是理解为什么这不起作用。令我困惑的是,从子进程发送的变量可能会附加到文件中。但是,循环或“if”表达式无法识别它。等等

谢谢!

标签: pythonbashsubprocessssmtp

解决方案


我应该更具体。我的 python 代码中的“消息”是一个电子邮件地址:“ https://example.com/ ”。看来,当我从字符串中删除“https://”时,它工作得非常好!


推荐阅读