java - .jar 输出到 python smtp 电子邮件
问题描述
在 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]))
问题已解决并反映在上面。
解决方案
检查您正在执行字符串连接的行。
mailtext='From: '+replyto+'\nTo: '+sendtoShow+'\n'
mailtext=mailtext+'Subject:'+subject+'\n'+content
...
print('Sendmail result=' + str(rslt[1]))
这些行是否试图将 str 和 int 对象连接在一起?也就是说,是replyto
, sendtoShow
, mailtext
, subject
, 还是content
实际上的int
对象?为避免猜测,只需将它们投射到str
最后一行的样子即可。
推荐阅读
- java - Micronaut 作为 OAuth2 客户端
- css - 如何在不使用媒体查询的情况下定位 div 以获得较低的分辨率
- c# - 注销后如何放弃 Azure App Service 会话
- angular - 在父组件中使用单个 ngOnDestroy
- sql - 出现的子字符串正则表达式
- python - 为什么 boto 请求会截断我的查询字符串?
- html - 在 HTML 按钮标签内有一个锚标签
- swift - 有没有办法在不同条件下在一个变量中传递两个不同类的对象
- javascript - 如何在我的 Viber-bot 中使用 bot.getUserDetails
- qlikview - 在图表中显示/隐藏行背后的逻辑