Python 【收发邮件】


- msg['From'] = Header('xxx') #from收件人邮箱地址 msg['From'] = Header('cool')
- msg['To'] = Header('xxx') #to发件人邮箱地址 msg['To'] = Header('小可爱')
- msg['Subject'] = Header('xxx') #主题 msg['Subject'] = Header('来自cool的问候')
- text = 'send by python'
- msg = MIMEText(text,'plain','utf-8')

- to_addrs = ['wu@qq.com','kaxi@qq.com']
- msg['To'] = Header(to_addrs)
- #直接运行程序的话,这里就会发生错误:AttributeError: 'list' object has no attribute 'decode'。
- #因为Header接受的第一个参数的数据类型必须要是字符串或者字节,列表不能解码
- #使用join()函数,它的功能是把字符串合并
- print(type(['wu@qq.com','kaxi@qq.com']))
- print(type(",".join(to_addrs)))
- <class 'list'>
- <class 'str'>
msg['to'] = Header(",".join(to_addrs))
- to_addrs = []
- while True:
- a=input('请输入收件人邮箱:')
- #输入收件人邮箱
- to_addrs.append(a)
- #写入列表
- b=input('是否继续输入,n退出,任意键继续:')
- #询问是否继续输入
- if b == 'n':
- break
- #print(to_addrs)
- import csv
- #引用csv模块。
- data = [['wu ', 'wu@qq.com'],['kaxi', 'kaxi@qq.com']]
- #待写入csv文件的内容
- with open('to_addrs.csv', 'w', newline='') as f:
- writer = csv.writer(f)
- for row in data:
- writer.writerow(row)
- import csv
- #引用csv模块。
- with open('to_addrs.csv', 'r') as f:
- reader = csv.reader(f)
- for row in reader:
- to_addrs=row[1]


- import smtplib
- # smtplib 用于邮件的发信动作
- from email.mime.text import MIMEText
- # email 用于构建邮件内容
- from email.header import Header
- # 用于构建邮件头
- import csv
- # 引用csv模块,用于读取邮箱信息
- # 发信方的信息:发信邮箱,QQ邮箱授权码
- # 方便起见,你也可以直接赋值
- from_addr = input('请输入登录邮箱:')
- password = input('请输入邮箱授权码或者密码:')
- # 发信服务器
- smtp_server = 'smtp.exmail.qq.com'
- # 邮件内容
- text='''亲爱的学员,你好!
- 我是吴老师,能遇见你很开心。
- 希望学习python对你不是一件困难的事情!
- 人生苦短,我用Python
- '''
- # 待写入csv文件的收件人数据:人名+邮箱
- # 记得替换成你要发送的名字和邮箱
- data = [['qy ', '123456@qq.com'],['lxz_jy', '654321@qq.com']]
- # 写入收件人数据
- with open('to_addrs.csv', 'w', newline='') as f:
- writer = csv.writer(f)
- for row in data:
- writer.writerow(row)
- # 读取收件人数据,并启动写信和发信流程
- with open('to_addrs.csv', 'r') as f:
- reader = csv.reader(f)
- for row in reader:
- to_addrs=row[1]
- msg = MIMEText(text,'plain','utf-8')
- msg['From'] = Header(from_addr)
- msg['To'] = Header(to_addrs)
- msg['Subject'] = Header('python test')
- server = smtplib.SMTP_SSL(smtp_server)
- server.connect(smtp_server,465)
- server.login(from_addr, password)
- try:
- server.sendmail(from_addr, to_addrs, msg.as_string())
- print('success')
- except:
- print('failed')
- # 关闭服务器
- server.quit()
- import math
- num =float(input('pls input a number:'))
- # 方法1,关键词:条件判断
- def abs_value1():
- if num >= 0:
- print('该数字的绝对值为:{}'.format(num))
- else:
- print('该数字的绝对值为:{}'.format(-num))
- # 方法2,关键词:内置函数
- def abs_value2():
- num1 = abs(num)
- print('该数字的绝对值为:{}'.format(num1))
- # 方法3,关键词:内置模块
- def abs_value3():
- num1 = math.fabs(num)
- print('绝对值为{}'.format(num1))
- # 写完3种方法后,验证一下吧。
- abs_value1()
- abs_value2()
- abs_value3()
Python 【收发邮件】的更多相关文章
- Python收发邮件
发送邮件使用SMTP协议,接受POP3或IMAP: 创建邮件内容email模块,发送邮件smtplib模块.发送邮件比较简单,只需先创建SMTP对象,登录服务器后根据发收邮箱地址发送即可: POP3接 ...
- 转--python -- 收发邮件
官方 import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smt ...
- python收发邮件的方法
def acptmail(): email = 'xxx@163.com' #input('Email:') password = 'xxx' #input('Password: ') pop3_se ...
- 使用python的email、smtplib、poplib模块收发邮件
使用python的email.smtplib.poplib模块收发邮件 一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理.(即类似Outlook的电子邮件软件) MTA: ...
- python的email、smtplib、poplib模块收发邮件
一封电子邮件的旅程是: MUA:Mail User Agent--邮件用户代理.(即类似Outlook的电子邮件软件) MTA:Mail Transfer Agent--邮件传输代理,就是那些Emai ...
- python SMTP邮件发送(转载)
Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...
- python发邮件遇到的端口号问题
在学习使用python发邮件的过程中, 遇到了一个问题:由于测试的时候使用的是QQ邮箱,要求必须使用SSL/TLS加密,所以有了下面的代码, from email.mime.text import M ...
- DouNet学习_收发邮件
一.收发邮件 --->第一步:发邮件首先要有发送者的邮箱地址和登录的密码才能发送 这些都写在APP里 不要写死 --->第二步:发邮件就要有网络,要添加net.Mail命名空间 要发送的 ...
- 使用python发邮件
使用python发邮件 网上有很多发邮件的例子,本人在网上找了一份,稍加修改后使用 上源码 # encoding=utf-8 from email.mime.image import MIMEImag ...
- Outlook Express 收发邮件出现"0x800CCC0F"错误代码解决方法
非常多网友在使用Outlook Express收发邮件的过程中,有时能够发送邮件,但出现不能接收信件的问题.每次在收邮件都会在某个地方停止不动,然后报超时,出现错误代码0x800CCC19或0x800 ...
随机推荐
- linux 查看某个进程内存占用情况命令
1.先用ps查询进程号 ps -aux|grep 进程名字 2.查看更详细的内存占比 cat /proc/3664/status 返回结果:(其中VmRSS为进程所占用的内存)
- 去掉 webstorm 灰色的数据类型提示
- cas系列-cas登出(四)
跟登陆一样,登出操作也很重要.由于是多应用间操作,状态保持也是一个要点,根据登出的影响范围,可以将登出操作分为两类: 单应用登出 单点登出(多应用登出) 顾名思义,单应用登出即登出只影响被操作的应用会 ...
- RK3288 st7703 mipi屏指令过长,程序跑飞
本文为博主原创文章,转载请注明出处:https://www.cnblogs.com/lialong1st/p/11218433.html CPU:RK3288 系统:Android 5.1 调试 mi ...
- 搭建JavaWeb应用开发环境——Tomcat服务器
学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问. 搭建JavaWeb应用开发环境——Tomcat服务器 1.疑问:学习web开发,为什么必 ...
- rpm包和deb分别是什么?
一.RMP 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了.这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀 ...
- 用http请求thrift服务端出现了内存溢出的情况
记一次内存溢出的分析经历 - Janti - 博客园 https://www.cnblogs.com/superfj/p/8474288.html 说在前面的话 朋友,你经历过部署好的服务突然内存溢出 ...
- angular项目目录结构分析
详情查看:https://www.angular.cn/guide/file-structure app.module.ts 定义 AppModule, 这个根模块会告诉 Angular 如何组装该应 ...
- Qt 自定义信号SIGNAL
emit toLine(lineQStr);connect(vcthread, SIGNAL(toLine(QString)), this, SLOT(appendText(QString)));
- 33Flutter仿京东商城项目 登录 注册相关页面布局
加群452892873 下载对应33课文件,运行方法,建好项目,直接替换lib目录 以下列出的是本课涉及的文件. User.dart import 'package:flutter/material. ...