博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Python3发送邮件详解
阅读量:6948 次
发布时间:2019-06-27

本文共 1393 字,大约阅读时间需要 4 分钟。

 

整个邮件系统是怎样工作的

  邮件自互联网诞生之初就有了,它和web服务一样也是采用的c/s架构,比如我们常见的邮件客户端有outlook、foxmail这些邮件客户端软件。

  当我们要发邮件时客户端就通过smtp协议与服务端进行通信把我们的邮件发到服务器端,比如我用的QQ邮件那么我发的邮件一定是先去了QQ

  邮箱的服务器,这个时候服务器会看一下我发送的目标地址是多少,如果也是QQ邮箱用户,那么它就直接把信投递到对应的用户;如果目标

  地址不是QQ邮箱那么比如说是1234@162.com,那么它会把邮件发送到162邮箱的服务器,162邮箱的服务器会把邮件投递到目标用户。投递

  完成后邮件也只是进了目标用户的邮桶,用户想要看邮件还要取出来才行;邮件客户端取邮件的过程用的是pop3协议,当然还有另一个协议

  也是可以用来取邮件的它就imap协议。

 

python3怎么发邮件呢

  python3中我们可以直接使用smtplib这个标准库进行邮件的发送,但是为你发送的邮件对“人类”更加的友好,你通常还要加上email这个

  标准库

 

1、了解一下最简单的邮件发送程序

from smtplib import SMTP_SSLwith SMTP_SSL(host="smtp.qq.com") as smtp :    smtp.login(user='1721900707@qq.com',password='xxxxxxxxxxx')    smtp.sendmail(from_addr="1721900707@qq.com",to_addrs="1721900707@qq.com",msg="hello world")

  代码的逻辑和我们日常使用邮箱时的过程是一样的、先用自己的账号密码登录上邮箱、接下来就可以发送邮件了;上面的代码

  并没有用到email标准库,所以它发出来的邮件一个正常的人类是看不懂的;但是对于写代码来说它保留了主干,更有利于我

  们理解发送邮件的过程

      

 

2、来一个看的下去的例子

from smtplib import SMTP_SSLfrom email.mime.text import MIMETextwith SMTP_SSL(host="smtp.qq.com") as smtp :    smtp.login(user='1721900707@qq.com',password='xxxxxxxxxxxxx')        msg = MIMEText("这是来自Python3的一封测试邮件",_charset="utf8")    msg["Subject"] = "测试邮件"    msg["from"] = '1721900707@qq.com'    msg["to"] = '1721900707@qq.com'        smtp.sendmail(from_addr="1721900707@qq.com",to_addrs="1721900707@qq.com", msg=msg.as_string())

  通过于email库配合使用后邮件已经基本人类可读了

  

 

 

  

 

----

转载于:https://www.cnblogs.com/JiangLe/p/9159890.html

你可能感兴趣的文章
SQL Server - 把星期一(周一)当作每个星期的开始在一年中求取周数
查看>>
jquery-alert对话框
查看>>
WIN8系统安装软件时提示"扩展属性不一致"的解决方法
查看>>
sqlite3.exe 使用
查看>>
CAD中批量打印
查看>>
蛋疼的Apple IOS Push通知协议
查看>>
MyEclipse10.0 安装 jbpm4.4
查看>>
批处理复制文件(文件夹)排除某目录,某些类型(草稿)
查看>>
【转】shell 编程:冒号 后面跟 等号,加号,减号,问号的意义
查看>>
C#编写COM组件
查看>>
[OpenSource]浅谈.Net和Java互相调用的三种方式
查看>>
C语言指针的初始化和赋值
查看>>
安卓开发笔记——关于照片墙的实现(完美缓存策略LruCache+DiskLruCache)
查看>>
定义和使用EL函数
查看>>
android edittext不弹出软键盘
查看>>
关于正则表达式 C#
查看>>
【原创视频教程】SqlServer2008视频教程[共9集]
查看>>
Ubuntu 14.04 启用休眠
查看>>
Android闹钟源代码
查看>>
const使用摘要
查看>>