ssmtp无法通过电子邮件发送从python子流程收到的my bash变量
我使用python脚本中的子流程将变量发送到bash脚本中,该脚本用于发送电子邮件 我的python代码:ssmtp无法通过电子邮件发送从python子流程收到的my bash变量,python,bash,subprocess,ssmtp,Python,Bash,Subprocess,Ssmtp,我使用python脚本中的子流程将变量发送到bash脚本中,该脚本用于发送电子邮件 我的python代码: import re import subprocess message="https://example.com/" subprocess.run(["./send_email.bash",message]) #!/bin/bash body=$1 echo "$body" | ssmtp example@gmail.com 我的“/send\u email.bash”脚本: impo
import re
import subprocess
message="https://example.com/"
subprocess.run(["./send_email.bash",message])
#!/bin/bash
body=$1
echo "$body" | ssmtp example@gmail.com
我的“/send\u email.bash”脚本:
import re
import subprocess
message="https://example.com/"
subprocess.run(["./send_email.bash",message])
#!/bin/bash
body=$1
echo "$body" | ssmtp example@gmail.com
它一直发送一封空白电子邮件。但是,如果我使用的字符串不是来自子流程,则电子邮件中会包含该字符串。也许有更好的方法可以做到这一点,但我的帖子的重点是要理解为什么这不起作用。让我困惑的是,从子流程发送的变量可能会附加到文件中。但是,循环或“if”表达式无法识别它。等等
谢谢大家! 为什么不直接运行
ssmtp
并将邮件送入其stdin
?或者只是使用stmp
模块来做ssmtp
所做的事情?我做了,它可以工作。但我很想知道为什么这不起作用。谢谢我应该说得更具体些。python代码中的“消息”是一个电子邮件地址:“”。似乎当我从字符串中删除“https://”时,它工作得非常好!