почта на питоне без темы - PullRequest
2 голосов
/ 05 апреля 2011

Я отправляю Gmail через Python, но я не получаю никакой темы.Я понимаю, что код, который я показываю вам, не имеет никакого предмета, но я попробовал много вариантов без успеха.Может кто-нибудь сказать мне, как реализовать тему.Тема будет одинаковой каждый раз.

        fromaddr = 'XXXX@gmail.com'
        toaddrs = 'jason@XXX.com'
        msg = 'Portal Test had an error'

        #provide gmail user name and password
        username = 'XXXX'
        password = 'XXXXX'

        # functions to send an email
        server = smtplib.SMTP('smtp.gmail.com:587')
        server.ehlo()
        server.starttls()
        server.ehlo()
        server.login(username,password)
        server.sendmail(fromaddr, toaddrs, msg)
        server.quit()

Ответы [ 3 ]

4 голосов
/ 05 апреля 2011

Существует два важных шага при отправке электронной почты через Интернет - создайте сообщение RFC-2822, а затем отправьте его по SMTP.Вы просматривали SMTP-часть, но не создали правильное сообщение.Это легче продемонстрировать, делая это.

>>> from email.mime.text import MIMEText
>>>
>>> fromaddr = 'XXXX@gmail.com'
>>> toaddrs = 'jason@XXX.com'
>>> subject = 'This is an important message'
>>> content = 'Portal Test had an error'
>>>
>>> # constructing a RFC 2822 message
... msg = MIMEText(content)
>>> msg['From'] = fromaddr
>>> msg['To'] = toaddrs
>>> msg['Subject'] = subject

Сообщение RFC 2822 на самом деле представляет собой фрагмент текста, который выглядит следующим образом:

>>> print msg
From nobody Tue Apr 05 11:37:50 2011
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: XXXX@gmail.com
To: jason@XXX.com
Subject: This is an important message

Portal Test had an error

При этом вы сможете отправлятьэто с использованием вашего SMTP-кода.Обратите внимание, что некоторые данные, такие как адрес и адрес, повторяются на обоих этапах.

3 голосов
/ 05 апреля 2011

Вам необходимо заполнить заголовок "Subject" .

См. На следующей странице примеры того, как сделать это правильно: 18.1.11. электронная почта: Примеры . Первый делает более или менее то, что вы хотите.

2 голосов
/ 05 апреля 2011

Используйте модуль электронной почты Python для генерации правильно отформатированной электронной почты, совместимой с RFC-822 - включая тему и т. Д. Самостоятельное выполнение подвержено ошибкам.

http://docs.python.org/library/email

...