问题:显示smtplib发送的邮件中的用户名
答案:在使用smtplib发送邮件时,通常情况下,邮件的发送者的用户名不会直接显示在邮件正文中。邮件发送者的信息可以通过邮件头部字段中的"From"字段进行确认。
"From"字段通常采用如下格式: From: 发送者名称 <发送者邮箱>
当使用smtplib发送邮件时,可以通过设置邮件头部字段来指定发送者的信息。以下是一个示例代码:
import smtplib
from email.mime.text import MIMEText
# 邮件发送者的信息
sender = "发送者名称 <发送者邮箱>"
password = "发送者邮箱密码"
# 邮件接收者的信息
receiver = "接收者邮箱"
# 邮件主题和内容
subject = "示例邮件"
content = "这是一封示例邮件"
# 创建邮件对象
message = MIMEText(content, "plain", "utf-8")
message["Subject"] = subject
message["From"] = sender
message["To"] = receiver
# 发送邮件
try:
server = smtplib.SMTP("smtp.example.com", 25) # 使用相应的SMTP服务器和端口号
server.login(sender, password)
server.sendmail(sender, receiver, message.as_string())
server.quit()
print("邮件发送成功")
except smtplib.SMTPException as e:
print("邮件发送失败:", e)
在上述示例中,发送者的信息通过设置邮件头部字段中的"From"字段进行指定。这样,在接收者收到邮件时,可以通过查看邮件头部信息,获取发送者的名称和邮箱地址。
请注意,发送者的信息在邮件正文中不会直接显示。如果需要在邮件正文中显示发送者的用户名,可以在邮件正文中手动添加相应的内容。
推荐的腾讯云相关产品:腾讯企业邮件(https://cloud.tencent.com/product/exmail)
import pandas as pd
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
filename='C:\\Users\\thinkpad\\Desktop\\1.xlsx' #附件地址
def send_mail(to_list,sub,context,filename): #to_list:收件人;sub:主题;content:邮件内容
mail_host="smtp.163.com" #设置服务器
mail_user="XXXX@163.com" #用户名
mail_pass="xxxxxx" #口令
mail_postfix="163.com" #发件箱的后缀
me="服务器"+"<"+mail_user+"@"+mail_postfix+">" #这里的“服务器”可以任意设置,收到信后,将按照设置显示
msg = MIMEMultipart() #给定msg类型
msg['Subject'] = sub #邮件主题
msg['From'] = me
msg['To'] = ";".join(mailto_list)
msg.attach(context)
#构造附件1
att1 = MIMEText(open(filename, 'rb').read(), 'xls', 'gb2312')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment;filename='+filename[-6:]#这里的filename可以任意写,写什么名字,邮件中显示什么名字,filename[-6:]指的是之前附件地址的后6位
msg.attach(att1)
try:
s = smtplib.SMTP()
s.connect(mail_host) #连接smtp服务器
s.login(mail_user,mail_pass) #登陆服务器
s.sendmail(me, mailto_list, msg.as_string()) #发送邮件
s.close()
return True
except Exception:
return False
if __name__ == '__main__':
mailto_list=["zhanghaili@autoht.com"]
a=pd.DataFrame({'数列1':(1,1,1,1),'数列2':(2,2,2,2),'数列3':(3,3,3,3),'数列4':(4,4,4,4)})
a.index={'行1','行2','行3','行4'} #这里dataframe类型a就是要输出的表格
sub="test"
d='' #表格内容
for i in range(len(a)):
d=d+"""
测试程序邮件发送:
"""
html = """\
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
""" + str(a.index[i]) + """
""" + str(a.iloc[i][0]) + """
""" + str(a.iloc[i][1]) + """
""" + str(a.iloc[i][2]) + """
""" + str(a.iloc[i][3]) + """
领取专属 10元无门槛券
手把手带您无忧上云