美文网首页
18 | 邮件发送系统(假如有时间)

18 | 邮件发送系统(假如有时间)

作者: 运维开发_西瓜甜 | 来源:发表于2019-12-30 22:31 被阅读0次

一、开通邮箱SMTP服务,并获取 授权码

这个账户是你要使用此邮箱发送邮件的账户,密码不是平时登录邮箱的密码,而是开通 POP3/SMTP 功能后设置的客户端授权密码。

这里以 126 邮箱为例:

image.png image.png image.png

二、基本语法

安装

pip3  install  yagmail

使用

import yagmail
yag = yagmail.SMTP(
            user='自己的账号',
            password='账号的授权码',
            host='smtp.qq.com',  # 邮局的 smtp 地址
            port='端口号',       # 邮局的 smtp 端口
            smtp_ssl=False)

yag.send(to='收件箱账号',
         subject='邮件主题',
         contents='邮件内容')

三、发送文本

下面是以我的 126 邮箱为例, 使用系统密钥环的方式,向我的 163邮箱发送了一封邮件。

import yagmail

# 这个要刚才已经成功开通 SMTP 的邮箱账号
email_user = 'shark@126.com'

# 这个必须是客户端授权码,不是登录密码
email_pwd  = 'yourpassword'

# 这个可以从邮件服务提供商获取
email_host = 'smtp.126.com'

# 邮件正文
email_content = """你不是我喜欢的那种人

却慢慢变成

我喜欢的那个人"""


yag = yagmail.SMTP(user=email_user,
                   password=email_pwd,
                   host=email_host,
                   port=25,
                   smtp_ssl=False)
yag.send(to='docker@163.com',
         subject='告白气球',
         contents=email_content)

这样就愉快的发送了一封测试邮件到 docker@163.com 的邮箱。

image.png

四、发送附件

image.png

保存上面的图片到本地,作为测试之用。

这里保存的名称是 告白气球.jpg

发送附件可以使用 attachments 关键字参数,它的值可以是一个具体的有效路径,也可以是包含有效路径的列表。

import yagmail

email_user = 'shark@126.com'
email_pwd  ='yourpassword'
email_host = 'smtp.126.com'

email_content = """你不讲真心话
我却在大冒险"""

email_image = "./拥抱.jgp"

yag = yagmail.SMTP(user=email_user,
                   password=email_pwd,
                   host=email_host,
                   port=25,
                   smtp_ssl=False)
yag.send(to='docker@163.com',
         subject='告白气球',
         contents=email_content,
         attachments=email_image
)

邮件收到显示:

有的时候,发送的邮件会被识别为垃圾邮件^_^

image.png

最简单的还是放在 contents 中。比如:

contents=[email_content, email_image]

在这个列表中,假如是有效的路径,就会作为附件发送,假如不是有效路径,就会作为普通文字发送。

image.png

五、发送给多个收件人

给多个人发送是,只需要把关键字参数 to 的值改成列表即可,列表中放入需要通知的人的邮箱地址。

email_users=["user1@163.com", "user2@126.com"]

to=email_users

六、加密邮件内容

希望加密邮件内容,也很简单。

大部分运营上提供的加密邮件接收的端口是 465

import yagmail

email_user = 'shark@126.com'
email_pwd  = 'yourpassword'
email_host = 'smtp.126.com'

email_content = """你不讲真心话
我却在大冒险"""

yag = yagmail.SMTP(user=email_user,
                   password=email_pwd,
                   host=email_host,
                   port=465,
                   smtp_ssl=True)
yag.send(to='docker@163.com',
         subject='告白气球',
         contents=email_content
)

其实 smtp_ssl=True 这个参数不传也行,因为默认的就是 True

image.png

相关文章

  • 18 | 邮件发送系统(假如有时间)

    一、开通邮箱SMTP服务,并获取 授权码 这个账户是你要使用此邮箱发送邮件的账户,密码不是平时登录邮箱的密码,而是...

  • SKPSMTPMessage

    SKPSMTPMessage 可以自己实现邮件发送,采用系统的邮件发送会弹出邮件发送框,如果要求静默发送邮件可参照...

  • iOS邮件发送(最新)(iOS Email)

    iOS 上的系统邮件发送相当简单,瞬间让你搞懂邮件发送。 APP站内发生邮件 跳转到系统邮件页面发生邮件 参考代码

  • iOS12系统应用发送邮件中的附件

    iOS12系统应用发送邮件中的附件 iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档、图片...

  • “deadline是第一生产力”的思考

    今天18点前要完成任务,发送邮件,17点开始上网络直播课,于是我在16:30完成发送邮件,邮件发送成功那一...

  • iOS邮件发送开发

    一、使用iPhone系统自带邮件发送邮件 1. MFMailComposeViewController(原生)——...

  • iOS12系统应用发送普通邮实现发送

    iOS12系统应用发送普通邮实现发送 构建好邮件以后,可以发送该邮件。此时需要使用mailComposeDeleg...

  • Laravel 发送邮件(适用于生产环境)

    Laravel 发送邮件(适用于生产环境) 1. 应用场景 系统邮件发送量较小,暂时不需要另外购买邮件发送服务。 ...

  • MFMailComposeViewController 发邮件

    MFMailComposeViewController 系统提供的类 使用系统邮件来实现发送邮件 项目中先导入Me...

  • 随笔记

    在html页面中写一行代码实现发送邮件功能 Email 点击email链接,给XXX@163.com发送邮件,系统...

网友评论

      本文标题:18 | 邮件发送系统(假如有时间)

      本文链接:https://www.haomeiwen.com/subject/eneroctx.html