Заполните другие поля электронной почты, такие как Тема в почтовой функции Python - PullRequest
0 голосов
/ 29 ноября 2018

Я протестировал этот кусок кода, и он успешно отправляет электронное письмо, он оставляет пустые поля темы, поля cc и bcc, как видно на фотографии.

import smtplib

gmail_user = 'dummy@gmail.com'  
gmail_password = 'password'



sent_from = 'dummy@gmail.com'  
to = ['receiver@gmail.com']  
subject = 'OMG Super Important Message'  
body = "Hey, what's up?\n\n- You"

email_text = """\
From: %s  
To: %s  
Subject: %s

%s
""" % (sent_from, ", ".join(to), subject, body)

try:  
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    print("establish connection successful")
    server.ehlo()
    print("identification successful")
    server.login(gmail_user, gmail_password)
    print("login successful")
    server.sendmail(sent_from, to, email_text)
    print("send mail successful")
    server.close()
    print('Email sent!')
except:  
    print('Something went wrong...')

Кто-нибудь знает, как я могу заполнить их через этот скрипт?

Screenshot of received mail

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Если вы попытаетесь открыть источник письма, вы увидите что-то вроде этого:

   Received: from ************.net ([***.**.2.17]) by
   *****.****.net ([**.***.224.162]) with mapi id **.03.****.***;
   Mon, 22 May 2017 09:14:59 +0200
   From: *FROMEMAIL* <******@***.com>
   To: *TOEMAIL* <********@***.com>
   CC: *CCEMAIL* <********@*****.com>
   Subject: E-mail - 150633**0686_****.pdf
   ...

Это заголовок письма, поэтому, если вы попробуете что-то вроде этого:

import smtplib

gmail_user = 'dummy@gmail.com'  
gmail_password = 'password'



sent_from = 'dummy@gmail.com'  
to = ['receiver@gmail.com']  
subject = 'OMG Super Important Message'  
body = "Hey, what's up?\n\n- You"
cc = "****@***.com"
bcc = "******@*****.com"
email_text = """\
From: %s  
To: %s
CC: %s
BCC: %s
Subject: %s

%s
""" % (sent_from, ", ".join(to), cc, bcc,subject, body)

try:  
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    print("establish connection successful")
    server.ehlo()
    print("identification successful")
    server.login(gmail_user, gmail_password)
    print("login successful")
    server.sendmail(sent_from, to, email_text)
    print("send mail successful")
    server.close()
    print('Email sent!')
except:  
    print('Something went wrong...')

Я думаю, что это будет работать

0 голосов
/ 29 ноября 2018

Для темы письма - существует определенный формат входного аргумента, который вы предоставляете server.sendmail, который должен работать.Не могли бы вы попробовать:

subject = 'This is the email subject'
text = 'This is the email body'
message = "Subject: {}\n\n{}".format(subject, text)
server.sendmail(sender, recipient, message)
...