Отправить письмо в Python, используя подпроцесс - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь отправить электронное письмо с приложением CentOS, используя python.У меня ниже код работает нормально на машине с Windows, но, когда я запускаю этот код, он выдает ошибку

(110, «Время соединения истекло»)

def send_email(self):
    print("Sending an email...")
    try:
        sender = 'xxxxx@domain.com'
        receiver = 'yyyyy@domain.com'
        msg = MIMEMultipart()

        msg['From'] = sender
        msg['To'] = receiver
        msg['Subject'] = self.new_folder_name + 'Portal Automation testing results'

        body = 'Hi, \n\n This is my email body. \n\n Thanks.'

        msg.attach(MIMEText(body, 'plain'))

        filename = self.zip_file_name
        attachment = open(filename, 'rb')

        part = MIMEBase('application', 'octet-stream')
        part.set_payload((attachment).read())
        # part.set_payload((attachment).read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', "attachment; filename= " + filename)

        msg.attach(part)

        server = smtplib.SMTP('mail.xxxxx.com', 587)
        server.starttls()
        server.login(sender, "mypassword")
        text = msg.as_string()
        server.sendmail(sender, receiver, text)
        server.quit()
        print('.......')
        print("Email sent.")
        print("-------------------------------------------")
    except Exception as e:
        print('Email can not be sent. Error ====>', e)

Итак, я использовал подпроцесс, и он отправляет электронное письмо с вложением, но я не могу изменить тело сообщения, как хочу.Вот мой код:

    def send_email(self):

    print('Sending email to xxxxxxx@domain.com')
    body = 'This is email body'

    file_path = '/home/Path/to/file/{}/{}'.format(self.new_folder_name, self.zip_file_name)


    send_email_1 = 'echo {} | mail -s  "Email testing" -a {}  xxxxle@nuance.com'.format(body, file_path)
    send = subprocess.call(send_email_1, shell=True)

Вывод электронной почты: Привет, / n / nЭто пример электронной почты Бобби./ n / n С уважением

Мне нужна помощь с 1-м примером кода, чтобы он работал на CentOS, или 2-м образцом кода, где я могу отформатировать свое тело электронной почты.

Любая помощь действительно приветствуется.

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