2012-02-03 1 views
0

У меня есть следующий код:Как отправить HTML e-mail usind Sendmail команду Python

def send_email(self, alert_emails, subj, msg): 
    global alert_from 

    p = os.popen("/usr/sbin/sendmail -t" , 'w') 
    p.write("To: %s\n" % (','.join(alert_emails),)) 
    p.write("From: %s\n" % (alert_from,)) 
    p.write("Subject: %s\n\n" % (subj,)) 
    p.write(msg) 
    return p.close() 

Он посылает простые текстовые сообщения. Как я могу изменить его для отправки HTML-сообщений?

Благодаря

+1

Уже ответил: http://stackoverflow.com/questions/882712/sending-html-email-in-python –

ответ

1

Использование Content-Type: text/html заголовок. И используйте smtplib для отправки писем.

0

Почему бы вам использовать sendmail напрямую? У Python есть библиотеки для такого рода вещей. Используйте модуль email, чтобы создать свою почту, и smtplib, чтобы отправить его.

Плюс нет необходимости использовать инструкцию global, если вы не изменяете глобальную переменную внутри своей функции, которой вы не являетесь.

+0

не знаю почему, но когда я использую smtplib все письма идут в спам. Я не знаю, почему, но sendmail -t работает нормально с текстовыми сообщениями. Я знаю, что это хромой :) Возможно, вы правы, и я должен найти, почему все электронные письма отправляются на спам, используя smtplib ... – KennyPowers