Python отправка электронной почты TypeError: Expected string or buffer

Хорошо, ребята, я искал в Интернете целую вечность и просто не мог найти ответ на этот вопрос. Я попробовал много предложений, но не могу заставить его работать. Я пытаюсь отправить письмо, используя python (модули smtplib и email) и службу gmail. Вот мои импортированные пакеты:

import time, math, urllib2, urllib, os, shutil, zipfile, smtplib, sys
from email.mime.text import MIMEText

и вот мой оператор def для отправки сообщения:

def sendmessage():
print('== You are now sending an email to Hoxie. Please write your username below. ==')
mcusername = str(raw_input('>> Username: '))
print('>> Now your message.')
message = str(raw_input('>> Message: '))
print('>> Attempting connection to email host...')
fromaddr = 'x@gmail.com'
toaddrs = 'xx@gmail.com'
username = 'x@gmail.com'
password = '1013513403'
server = smtplib.SMTP('smtp.gmail.com:587')
subject = 'Email from',mcusername
content = message
msg = MIMEText(content)
msg['From'] = fromaddr
msg['To'] = toaddrs
msg['Subject'] = subject
try:
    server.ehlo()
    server.starttls()
    server.ehlo()
except:
    print('!! Could not connect to email host! Check internet connection! !!')
    os.system('pause')
    main()
else:
    print('>> Connected to email host! Attempting secure login via SMTP...')
    try:
        server.login(username,password)
    except:
        print('!! Could not secure connection! Stopping! !!')
        os.system('pause')
        main()
    else:
        print('>> Login succeeded! Attempting to send message...')
        try:
            server.sendmail(fromaddr, toaddrs, msg)
        except TypeError as e:
            print e
            print('Error!:', sys.exc_info()[0])
            print('!! Could not send message! Check internet connection! !!')
            os.system('pause')
            main()
        else:
            server.quit()
            print('>> Message successfully sent! I will respond as soon as possible!')
            os.system('pause')
            main()

Я отладил все, что мог, и получил следующее:

>> Login succeeded! Attempting to send message...
TypeError: expected string or buffer

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

Любая помощь будет очень признательна! Спасибо.

6
задан CR0SS0V3R 26 June 2014 в 14:00
поделиться