Python发送的邮件设置收件人隐藏与显示

作者: 东山絮柳仔

1.代码说明

在实际的使用中,有些邮件们希望收件人可以看到还有那些人可以收到此邮件,但有些邮件相反,例如含有一些较敏感的信息时,希望收件人都是隐藏的。一般们可以在邮件配置文件smtp_conig.py中设置,下面是为实现 隐藏 / 显示 收件人而使用的不同配置。 Python 的运行环境:Python 2.7.5 2.隐藏收件人

!/usr/bin/python
 -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header

邮件发送函数
def send_mail(message):
     第三方 SMTP 服务
    mail_host = "mail.q1q2w1w2.com"   设置服务器
    mail_user = "OrderCWS_Inform@q1q2w1w2.com"   用户名
    mail_pass = "PWD"   口令
    sender = 'OrderCWS_Inform@q1q2w1w2.com'
    receivers = ['收件人1@q1q2w1w2.com','收件人2@q1q2w1w2.com']   接收邮件
    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)   25 为 SMTP 端口号
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender, receivers, message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException:
        print "Error: 无法发送邮件"
    return

3.显示收件人

此份代码是在上份代码的基础上完善的,新增的地方已用粗体字显示。

!/usr/bin/python
 -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr from email.utils import formataddrdef __format_addr(addr):  解析邮件地址,以保证邮有别名可以显示 alias_name, addr = parseaddr(addr)  防止中文问题,进行转码处理,并格式化为str返回 return formataddr((Header(alias_name,charset="utf-8").encode(), addr.encode("uft-8") if isinstance(addr, unicode) else addr))邮件发送函数
def send_mail(message):
     第三方 SMTP 服务
    mail_host = "mail.q1q2w1w2.com"   设置服务器
    mail_user = "OrderCWS_Inform@q1q2w1w2.com"   用户名
    mail_pass = "PWD"   口令
    sender = 'OrderCWS_Inform@q1q2w1w2.com'
    receivers = ['收件人1@q1q2w1w2.com','收件人2@q1q2w1w2.com']   接收邮件
strTo = list() try: for a in receivers: strTo.append(__format_addr(a)) except Exception as e:  没有对a和toadd进行type判断,出错就直接还原 strTo = receivers 发送HTML格式邮件
message\['To'\] = ','.join(strTo)  这个一定要是一个str,不然会报错"AttributeError: 'list' object has no attribute 'lstrip'"
try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)   25 为 SMTP 端口号
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender, receivers, message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException:
        print "Error: 无法发送邮件"
    return

4.参考资料 python发送多人邮件没有展示收件人问题的解决方法 https://www.jb51.net/article/163575.htm

原文创作:东山絮柳仔

原文链接:https://www.cnblogs.com/xuliuzai/p/15179960.html

文章列表

更多推荐

更多
  • Pharo敏捷人工智能-第一部分:神经网络
    Apache CN

  • Pharo敏捷人工智能-第二部分:遗传算法
    Apache CN

  • Pharo敏捷人工智能-# 第三部分:神经进化 第三部分:神经进化
    Apache CN

  • IOS开发者的AWS和DevOps指南-十、iOS 应用开发的持续交付渠道 Jenkins 管道公司,AWS 代码管道,摘要,Fastlane 测试阶段,AWS 设备场测试阶段,Fastlane 构建阶段,Fastlane 交付阶段,为 AWS 代码管道设置 Jenkins 环境,在 AWS 控制台上设置代码管
    Apache CN

  • IOS开发者的AWS和DevOps指南-九、将 AWS 设备群用于测试 AWS 设备群简介,为应用测试生成 ipa 包,设置设备场项目并安排测试运行,AWS 设备场 Jenkins 插件,使用 Jenkins 自动化 AWS 设备群测试,摘要,使用 AWS 控制台安排测试运行,使用 AWS CLI 计划测试
    Apache CN

  • IOS开发者的AWS和DevOps指南-八、使用 Fastlane 自动构建、测试和发布 使用 Fastlane 匹配和亚马逊 S3 设置代码签名,设置 Jenkins 环境,用 Fastlane 自动化测试和构建,自动发布到 App Store Connect,摘要,正在初始化 Fastlane 匹配,在亚马逊 S3 存储
    Apache CN

  • IOS开发者的AWS和DevOps指南-六、使用 AWS CodeCommit 的源代码管理 Git 基础,创建 AWS 代码提交存储库,在 AWS 代码提交中添加源代码,AWS 代码提交中分支,AWS 代码提交中的拉请求,摘要,Git 安装,初始化 Git 存储库,记录对 Git 存储库的更改,克隆和使用远程 Git 存储库,
    Apache CN

  • IOS开发者的AWS和DevOps指南-七、将 AWS CodeCommit 与 Jenkins 集成 Jenkins 代码提交插件,设置集成组件,配置插件,使用 AWS 代码提交源创建 Jenkins 作业,摘要,通过 AWS 控制台设置组件,通过 Terraform 设置组件,测试 AWS 代码提交插件, 当应用源代码存储在 AWS
    Apache CN

  • IOS开发者的AWS和DevOps指南-四、AWS 上的 macOS 服务器 Amazon EC2 Mac 服务器,部署 Amazon EC2 Mac 服务器,连接到 Amazon EC2 Mac 服务器,使用 Amazon CloudWatch 监控 EC2 Mac 服务器,清理 Amazon EC2 Mac
    Apache CN

  • IOS开发者的AWS和DevOps指南-五、在 macOS 实例上设置开发工具 增加 macOS 实例宗卷大小,设置 Xcode,陷害 Jenkins,建立 Fastlane,设置 GitLab,摘要,Xcode 命令行工具,供应 Jenkins 控制器,EC2 Mac 实例作为 Jenkins 构建代理,创建 G
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多