Это мой первый пост здесь :)
Это первый питон, который я сделал.
Я пытаюсь написать скрипт, который будет отправлять электронную почту при запуске.
Об этом электронном письме для меня есть 3 важные вещи:
1) Нет «Кому» - только «CC» и «BCC».
2) BCC - в BCC много адресов, все они должны получить электронную почту, но другие адреса электронной почты должны быть скрыты.
3) Я хочу добавить гиперссылку на слово.
Я пытался использовать MIMEMultipart, но я не смог найти способ заставить BCC работать так, как я хочу (я перебрал Google и StackOverflow и не смог заставить его работать).
Мне удалось добиться отправки электронной почты со скрытой BCC, чтобы работать так, как я хочу, но это без использования MIMEMultipart - с использованием только smtplib, однако я не могу понять, как интегрировать html-часть.
def send_email():
password = '*********'
bcc = ['danielofir8@gmail.com','danielofirpython@gmail.com']
from_addr = 'danielofirsales@gmail.com'
to_addr = ''
cc_addr = 'danielofirsales@gmail.com'
mail_subject = "Testing E-mail"
content = "Maintenance on the New York data center will be performed on Sunday, July 1st, 2018 at 06:30 UTC.\nWe expect to complete the maintenance by Sunday, July 1st, 2018 at 08:30 "
body = f"From: {from_addr}\r\n" + f"To: {to_addr}\r\n" + f"Cc: {cc_addr}\r\n" + f"Subject: {mail_subject}\r\n" + "\r\n" + content
to_addr = [to_addr] + [cc_addr] + bcc
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login('danielofirsales@gmail.com',password)
server.sendmail(from_addr, to_addr ,body)
server.quit()
print("Success")
except:
print("Failed")
send_email()
Я нашел код, который кто-то здесь написал о том, как использовать MIMEMultipart для отправки HTML в электронном письме, и смог отправить электронное письмо с гиперссылкой, однако каждый раз пытался добавить BCC (пару разных способов, которые я нашел онлайн), я получаю сообщение об ошибке.
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
password = '*******'
from_adr='danielofirsales@gmail.com'
to_adr='danielofirpython@gmail.com'
msg = MIMEMultipart('alternative')
msg['Subject'] = "Emailing a link"
msg['From'] = 'danielofirsales@gmail.com'
msg['To'] = 'danielofirpython@gmail.com'
html = """
<html>
<head></head>
<body>
<p>Maintenance on the New York data center will be performed on Sunday, July 1st, 2018 at 06:30 UTC.\nAs published on our
<a href="http://www.google.com">Status Page</a> - We expect to complete the maintenance by Sunday, July 1st, 2018 at 08:30</p>
</body>
</html>
"""
part1=MIMEText(html, 'html')
part2=MIMEText("Maintenance on the New York data center will be performed on Sunday, July 1st, 2018 at 06:30 UTC.\nAs published on our http://www.google.com - We expect to complete the maintenance by Sunday, July 1st, 2018 at 08:30", 'text')
msg.attach(part1)
msg.attach(part2)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login('danielofirsales@gmail.com',password)
server.sendmail(msg['From'], msg['To'] ,msg.as_string())
server.quit()
print("Success")
Есть ли способ использовать скрытый параметр BCC для smtplib и параметр html для MIMEMultipart?
Также важно, что в настоящее время сценарий должен отправлять электронную почту через Gmail, но при фактическом применении он будет отправлять электронную почту с сервера электронной почты компании.
Заранее спасибо за помощь:)
Daniel.