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

Я работаю над созданием функции Python, которая отправляет простое утверждение по электронной почте. Я пытаюсь получить имя пользователя и адрес электронной почты из соответствующих переменных и передать в функцию. Я могу передать имя пользователя, но не могу передать адрес электронной почты как часть функции.

Может ли кто-нибудь подсказать, как передать адрес электронной почты из переменной (mail) в поле " to ". Приведенный ниже код при запуске отправляет почту на указанный адрес электронной почты, а также на неизвестный адрес электронной почты.

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

user = ['Steve','Austin']
mail = ['user1@mail.com','user2@mail.com']


def name(user,mail):
    # Email recipients
    sender_email = 'mail@mail.com'
    sender_password = '123456'
    server = 'smtp.gmail.com:587'
    to = "%(mail)s"    <-- Holds the email address of the receiver

# Email structure and content
    text = """"""
    html = """Report Generated for - """ + user +"""
    message = MIMEMultipart(
    "alternative", None, [MIMEText(text), MIMEText(html, 'html')])

    message.attach(MIMEText(html, 'html'))
    message['Subject'] = "Test Mail for " + str(user)
    message['From'] = sender_email
    message['To'] = to
    server = smtplib.SMTP(server)
    server.ehlo()
    server.starttls()
    server.login(sender_email, sender_password)
    server.sendmail(sender_email, to, message.as_string())
    server.quit()

name('Steve','user1@mail.com')
name('Austin','user2@mail.com')

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Судя по этой строке:

mail = ['user1@mail.com','user2@mail.com']

В конечном итоге вы хотите передать список адресов электронной почты. Если это так, вы можете просто удалить эту строку:

to = "%(mail)s"

И измените эту строку:

message['To'] = to

до:

message['To'] = ", ".join(mail)
0 голосов
/ 14 сентября 2018

Вам нужно изменить строку, в которой вы присваиваете значение переменной to следующим образом:

to = "%(mail)s" % locals()

или как это:

to = "%(mail)s" % {'mail': mail}

или просто так:

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