Отправка почты с помощью Python с помощью Gmail - PullRequest
3 голосов
/ 07 февраля 2012

Я пытался отправить почту с python из gmail, и она работает нормально.Но проблема в том, что когда я создал класс Mail с одним методом, которому я отправляю конкретную строку из своего кода, он не может быть отправлен.

class Mail:
   def send_mail(self, msg):
      import smtplib  

      fromaddr = 'something@something.com'  
      toaddrs  = 'something@gmail.com' 
      msg = msg + "something"

      print msg

      username = 'something'  
      password = 'something'  


      server = smtplib.SMTP('smtp.gmail.com:587')  
      server.starttls()  
      server.login(username,password)  
      server.sendmail(fromaddr, toaddrs, msg)  
      server.quit()  

Таким образом он отправляет почту, но единственное, что есть в почтеэто «что-то», что я добавил в строку, и вывод msg выводит всю строку плюс «что-то».В чем может быть проблема?

Пока это весь класс, и он называется

     mail = Mail()
     mail.send_mail(message)

Ответы [ 2 ]

4 голосов
/ 07 февраля 2012

Я не знаю, в чем была проблема, но мне удалось отправить его, используя MIME, который уже находится в python

Так вот код, который работает:

def send_mail(self, message):

    import smtplib
    from email.MIMEMultipart import MIMEMultipart
    from email.MIMEText import MIMEText

    gmailUser = 'something@gmail.com'
    gmailPassword = 'something'
    recipient = 'something@something.com'

    msg = MIMEMultipart()
    msg['From'] = gmailUser
    msg['To'] = recipient
    msg['Subject'] = "Subject"
    msg.attach(MIMEText(message))

    mailServer = smtplib.SMTP('smtp.gmail.com', 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmailUser, gmailPassword)
    mailServer.sendmail(gmailUser, recipient, msg.as_string())
    mailServer.close()
0 голосов
/ 08 ноября 2012

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

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