在Linux系统上运行。我有一个可执行的.jar文件,我正试图将其输出到我的python程序发送的电子邮件正文中。然而,虽然这个程序执行,但接收到的电子邮件中没有任何内容。因此.jar的输出在子进程中丢失。你知道吗
import smtplib
import subprocess
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.ehlo()
# login cred
username='Sample@gmail.com'
password='password'
s.login(username,password)
# email objects
replyto='sample@sample.com'
sendto=['export@sample.com']
sendtoShow='sample@sample.com'
subject='Example Subject'
content=subprocess.run(['java', '-jar', 'Example.jar'], stdout=subprocess.PIPE)
mailtext='From: '+replyto+'\r\nTo: '+sendtoShow+'\r\n'
mailtext=mailtext+'Subject:'+subject+'\r\n\r\n'+content.stdout.decode("utf-8")
s.sendmail(replyto, sendto, mailtext)
rslt=s.quit()
print('Sendmail result=' + str(rslt[1]))
问题解决并反映在上面。你知道吗
检查执行字符串串联的行。你知道吗
这些行中是否有任何一行试图将str和int对象连接在一起?也就是说,
replyto
、sendtoShow
、mailtext
、subject
或content
中的任何一个都是int
对象吗?为了避免猜测,只需像在最后一行那样将它们转换为str
。你知道吗你知道吗子流程调用返回退出代码,而不是标准输出。你需要使用popen方法。你知道吗
你知道吗子流程调用返回程序的返回代码,而不是程序的输出。所以在您的例子中,“内容”是
int
而不是string
。你知道吗尝试以下操作:
相关问题 更多 >
编程相关推荐