Как отправить почту в Python на Linux-сервер через «почту»? - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь отправить почту по триггеру событий от python на linux-сервере.На сервере уже установлена ​​почта, и мой код выглядит примерно так:

import subprocess
subprocess.call(["mail","-s Hello there", "someone@gmail.com < 
this_text_document.txt"])

Чувствую, будто я слепой как летучая мышь.Получи вечную загрузку.После прерывания получите следующее: «Не указан получатель ... сообщение не отправлено». Пожалуйста, отправьте помощь.

1 Ответ

0 голосов
/ 30 мая 2018

вы можете использовать smtplib для отправки электронной почты, но вам также нужен SMTP-сервер и MIMEText ::

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)

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...