我知道,同一个查询有数百个问题。为此表示歉意。我几乎尝试了每一个。但仍然没有得到解决方案。实际上,我从stackoverflow查询中复制了一些代码,并根据我的要求对其进行了改进。
我正在编写一个脚本,使用python为我们的服务器之一发送错误报告。我的问题是Email is sending to first member of RECIPIENTS only.
它需要一次发送给经理团队和管理员。
RECIPIENTS = ["mail1@gmail.com", 'mail2@mydomain.in' ]
TO = ", ".join(RECIPIENTS)
USER = "user30@gmail.com"
PASSWD = "userpass"
def sendmail():
msg = MIMEMultipart('alternative')
msg['Subject'] = subject()
msg['From'] = USER
msg['To'] = TO
mime_text = MIMEText(get_msg_text(), 'plain')
msg.attach(mime_text)
#-- Auth by Gmail
SERVER = smtplib.SMTP("smtp.gmail.com:587")
SERVER.starttls()
try:
SERVER.login(USER,PASSWD)
except SMTPAuthenticationError, e:
logit(e)
return False
try:
SERVER.sendmail(msg['From'], msg['To'], msg.as_string())
except Exception, e:
logit(e)
return False
finally:
SERVER.quit()
return True
if __name__ == "__main__":
sendmail()
注意: - 所有提及的功能和模块均已正确import
。实际上,它成功发送邮件。
我试过关注旧帖子:
答案 0 :(得分:1)
答案 1 :(得分:1)
要将电子邮件发送给多个人,您需要在sendmail函数中传递列表而不是字符串。这对您来说很好。
try:
SERVER.sendmail(msg['From'], RECIPIENTS, msg.as_string())
except Exception, e:
logit(e)
return False
答案 2 :(得分:0)
我已经尝试了这篇文章中的所有组合,并推荐了一种组合,并且使用Python3我无法使其正常工作。这是我设法做到的唯一方法。这不是完美的,因为接收电子邮件的人并没有收到所有发送的电子邮件。
for email in SMTP["to"]:
msg = MIMEMultipart()
msg['From'] = SMTP["user"]
msg['To'] = email
msg['Subject'] = f"[Repoman Notifier] Run on {today}!"
msg.attach(MIMEText(html_builder(report_data), 'html'))
server = smtplib.SMTP(f'{SMTP["host"]}:{SMTP["port"]}')
server.starttls()
server.login(msg['From'], SMTP["password"])
server.send_message(msg, msg['From'], msg["to"])
server.quit()