繁体   English   中英

发送电子邮件/使用字典

[英]sending an e-mail / using the dictionary

我如何使用字典(联系人)以允许通过提供收件人的姓名和姓氏发送电子邮件的方式修改代码。

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

contacts = {
   "john.david@gmail.com" : "Rick Jones",

}

msg = MIMEMultipart()
msg['From'] = 'xxx'
msg['To'] = 'xxx'
msg['Subject'] = 'hello'
message = ("hi")
msg.attach(MIMEText(message))

mailserver = smtplib.SMTP('smtp.gmail.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()
mailserver.login('xxx', 'xxx')

mailserver.sendmail('xxx','xxx',msg.as_string())

mailserver.quit()

如果您让用户提供姓名和姓氏。 你可以做这样的事情。

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

contacts = {
    "rick jones":"rick.jones@gmail.com" ,

}
send_to = ""
while send_to == "":
    name = input("Please enter the full name of an email contact").lower()
    if name in contacts:
        send_to = contacts[name]


msg = MIMEMultipart()
msg['From'] = 'xxx'
msg['To'] = send_to
msg['Subject'] = 'hello'
message = ("hi")
msg.attach(MIMEText(message))

mailserver = smtplib.SMTP('smtp.gmail.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()
mailserver.login('xxx', 'xxx')

mailserver.sendmail('xxx',send_to,msg.as_string())

mailserver.quit()

基本上我只会使用用户输入作为字典中解析为接收器的 email 地址的键。 所以我在你的字典里切换了键/数据。 因为您希望用户输入他们的名字以便提取他们的 email 地址。 所以我相信密钥最适合作为用户输入的人的全名,因为它可以直接 1:1 访问为该名称存储的 email 地址/es。

如果该名称返回多个 email 地址(因为在您的字典中,该名称可能与多个 email 地址相关联)您可以将它们存储为元组或列表,并通过迭代“联系人[名称”来询问用户他们的意思]”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM