收到一次通过gmail自动使用smtplib发送的电子邮件。接收者看到电子邮件的发件人是我的电子邮件地址。有没有办法将发件人显示为我可以自定义的名称?
答案 0 :(得分:1)
网上的大多数示例和教程都有点令人困惑,因为他们使用SMTP的用户名作为发件人的名字。下面是我简单的Python / Gmail SMTP脚本。在那里你会看到" From"我的邮件标题我可以插入任何我想要的字符串,它将显示在收到的电子邮件的发件人行中。
def send_email(sendName, user, pwd, recpient, subject, body):
import smtplib
reciever = recpient if type(recpient) is list else [recpient]
message = "From: " + sendName + "\nTo: " + (", ".join(reciever)) + "\nSubject: " + subject + "\n\n" + body + "\n"
try:
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(user, pwd)
server.sendmail(user, reciever, message)
server.close()
print("Message Send: Success.")
except Exception as e:
print("Message Send: Failure.")
print(e)
send_email(input("Sender Name: "), input("Gmail: "), input("Password: "), input("Recipient: "), input("Subject: "), input("Body: "))
答案 1 :(得分:0)
如果有人到处寻找更简单(如果可能不那么全面)的方法,那么我可以在yagmail v0.10.212上使用以下方法非常简单地做到这一点:
yagmail.SMTP({"user@gmail.com": "Alias"}, "pwd").send(mail, subject, body)
我将其设置为仅需要电子邮件地址的用户部分,但是在为别名添加字典时必须使用完整地址。
如果您使用的是.yagmail文件,则也不需要password参数,这可以提高安全性。或者把它放在钥匙圈上,这就是我要做的。
yagmail.SMTP({"user@gmail.com": "Alias"}).send(mail, subject, body)