首页 > 编程语言 >用python SMTP发送简单邮件

用python SMTP发送简单邮件

时间:2022-11-28 11:02:01浏览次数:44  
标签:python SMTP 发送 发件人 邮箱 my 邮件

python SMTP发送邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议

它是一组由源地址到目的地址传送邮件得规则,由它来控制信件的中转方式。

Python创建 SMTP 对象语法如下:

它的简单语法:

import smtplib # 引入smtplib模块

smtpobj = smtplib.SMTP(host,port,local_hostname)
  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: smtp.qq.com,这个是可选参数。
  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
  • local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息

实例:

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
my_sender='[email protected]'    # 发件人邮箱账号
my_pass = 'miqsfmwhwznzhdaa'     # 发件人邮箱密码
my_user='[email protected]'      # 收件人邮箱账号
def mail():
    ret=True
    try:
        msg=MIMEText('填写邮件内容','plain','utf-8')
        msg['From']=formataddr(["FromRunoob",my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To']=formataddr(["FK",my_user])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject']="发送邮件测试"                # 邮件的主题,也可以说是标题
 
        server=smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25
        server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码
        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()  # 关闭连接
    except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
        ret=False
    return ret
 
ret=mail()
if ret:
    print("邮件发送成功")
else:
    print("邮件发送失败")

使用第三方 SMTP 服务发送

如果上面实例显示邮箱报错("连接失败"),那可能是没开通邮箱的第三方smtp的服务发送

实例中的密码就为 '授权码'

QQ 邮箱 SMTP 服务器地址:smtp.qq.com,ssl 端口:465

标签:python,SMTP,发送,发件人,邮箱,my,邮件
From: https://www.cnblogs.com/zbfoot/p/16931613.html

相关文章

  • python3数据类型
    1. 数字类型 Python数字类型主要包括int(整型)和float(浮点型) int(整型) 在32位机器上,整数的位数是32位,取值范围是-231~231-1,即-2147483648~214748364;在64位系统上,整......
  • 树莓派安装CV2 for python3过程
     pipinstallopencv-python安装完测试   尝试修复,按照查的资料,依次安装依赖包sudoapt-getinstalllibcblas-dev又入新坑  系统建议装Base的包su......
  • Python PyDirectInput
    pipinstallpydirectinputimportpydirectinputpydirectinput.moveTo(100,150)#移动鼠标至坐标100,150pydirectinput.click()#点击鼠标左键pydirectinput.click(2......
  • 不背锅运维:Grafana的自动登入(Go和Python分别实现)
    1.实现目标想要达到的目标是:当在浏览器向http://192.168.11.254:3090/auto_login这个地址发起GET请求后能够自动登入Grafana2.实现思路需要额外开发一个API处理来自......
  • PYTHON 数据类型
    1.1数据类型数据都有类型,python的标准类型:数字:int,float,complex,bool字符串:str列表:list元组:tuple集合:set字典:dict可以用type()函数识别数据类型......
  • 如何使用Python查询在一个月内出现的重复订单?
    大家好,我是皮皮。一、前言前几天在小小明大佬的Python交流群中遇到一个粉丝问了一个使用Python实现Excel中查询在一个月内出现的重复订单问题,觉得还挺有用的,这里拿出来跟......
  • Python: 你所不知道的星号 * 用法
    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/FHyosiG_tegF5NRUEs7UdA本文大概1193个字,阅读需花6分钟内容......
  • CentOS6上python2.7安装memory_profiler报错
    由于我们需要分析python程序的内存占用问题,于是准备安装memory_profiler这个工具,但安装过程中各种报错,以下是安装报错截图和解决过程。1、安装/usr/local/python27/bin......
  • python中的文件操作
    起初data.txt文件是这样的#一直打开文件但却不关闭文件会导致内存溢出#在python,使用open函数,#可以打开一个已经存在的文件,或者创建一个新文件,#语法如下:open(......
  • 学习《Python编程 从入门到实践》第四天
    周末比工作日都要忙碌呢,一大堆家务事;要慢慢减少自己玩手机的时间,将时间用到有意义的事情上面去呢;不过能有几个小时做自己想去做的事情的时间,觉得还是蛮幸运的。道理大家......