1

プログラムが電子メールを送信するときに、電子メールの件名部分が表示されない問題があります。SMTP の RFC 仕様に従っていると思っていましたが、何が間違っているのかわかりません。どんな助けでも大歓迎です。

def email():

    sender = 'username@domain.com'
    receivers = ['username@domain.com']

    message = """From: From Admin <admin@domain.com>
    To:To Person <user@domain.com>
    Subject: Important Information

    This is a test email message.
    """ 
    try:
        smtpObj = smtplib.SMTP('domain.com', 25)
        smtpObj.sendmail(sender, receivers, message)
        print "Successfully sent email"
    except smtplib.SMTPException:
        print('Error: unable to send email')
4

2 に答える 2

1

コードの何が問題なのかわからない。

FWIW、過去に string.join を使用してメッセージ本文を作成しました:

def send_email():
    import string,smtplib

    SMTPserver = "smtp.com"
    # To is a comma-separated list
    To = "sender@domain.com"
    From = "receipient@domain.com"
    Subj = "test subject"
    Text = """test email.
    Not sure what the problem is
    Multi-line anyway."""

    Body = string.join((
        "From: %s" % From,
        "To: %s" % To,
        "Subject: %s" % Subj,
        "",
        Text,
        ), "\r\n")

    s = smtplib.SMTP(SMTPserver)
    s.sendmail(From,[To],Body)

    s.quit()

-J

于 2012-05-27T19:09:42.493 に答える
0

http://docs.python.org/library/email-examples.htmlの例を試す か、サンプル コードを試してみてください。from ヘッダーは必要ありませんでしたが、必要に応じて追加できると思います。

import smtplib

USER_NAME = 'username@domain.com'
PASSWORD = getpass.getpass("%s's PASSWORD: " % USER_NAME)
DEBUG = True
MESSAGE_FORMAT = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" # %(fromAddr,to,subject,text)

def sendEmail(recipient,message):
    SMTP_SERVER_URL = 'smtp.gmail.com'
    mailserver = smtplib.SMTP(SMTP_SERVER_URL)
    if DEBUG: 
        mailserver.set_debuglevel(1)
        mailserver.ehlo()
        mailserver.starttls()
        mailserver.ehlo()
    mailserver.login(USER_NAME,PASSWORD)
    mailserver.sendmail('', recipient, message)
    mailserver.close()

def sendEmailWithFields(to,subject,text):
    message = MESSAGE_FORMAT%('', to, subject, text)
    sendEmail(to,message)

if __name__ == '__main__':
    to = 'receipient@domain.com'
    subject = 'The subject'
    text = 'The text body'
    sendEmailWithFields(to,subject,text)
于 2012-05-28T11:10:22.640 に答える