我正在尝试在Linux服务器上使用Python的事件触发器发送邮件。该服务器已经安装了邮件服务,我的代码如下:
import subprocess
subprocess.call(["mail","-s Hello there", "someone@gmail.com <
this_text_document.txt"])
我感觉自己在这里像一只瞎蝙蝠。一直在加载中,但当我打断它时,会收到这样的提示:"未指定收件人,消息未发送"。请帮忙解决。
我正在尝试在Linux服务器上使用Python的事件触发器发送邮件。该服务器已经安装了邮件服务,我的代码如下:
import subprocess
subprocess.call(["mail","-s Hello there", "someone@gmail.com <
this_text_document.txt"])
我感觉自己在这里像一只瞎蝙蝠。一直在加载中,但当我打断它时,会收到这样的提示:"未指定收件人,消息未发送"。请帮忙解决。
这将有效:
def SendMail(Subject: str, Body: str):
body_str_encoded_to_byte = Body.encode()
return_stat = subprocess.run([f"mail", f"-s {Subject}", "Idan@mail.com"], input=body_str_encoded_to_byte)
print(return_stat)
import smtplib
from email.mime.text import MIMEText
from email.header import Header
server = smtplib.SMTP("smtp.server.com", 587)#port
server.ehlo()
server.starttls()
server.login('email@email.com', 'password')
body = 'Hello there'
msg = MIMEText(body,'plain','utf-8')
subject = 'Email test'
msg["Subject"] = Header(subject, 'utf-8')
from = 'email@email.com'
to = 'someone@gmail.com'
msg["From"] = Header(from, 'utf-8')
msg["To"] = Header(to, 'utf-8')
txt = msg.as_string()
server.sendmail(from, to, txt)
对于你的问题,你可以这样做:
import subprocess
subprocess.call('mail -s "Hello there" "someone@gmail.com" < this_text_document.txt"', shell=True)
谢谢!