版本1   指定邮箱进行发送

"""
说明:指定账户密码进行邮件发送
由312051952@qq.com-->c4kaichen@163.com
""" import smtplib
from email.mime.text import MIMEText
from email.header import Header
#登录邮箱步骤
smtpConnect=smtplib.SMTP('smtp.qq.com',587)
smtpConnect.ehlo()
smtpConnect.starttls()
smtpConnect.login('312051952@qq.com','邮箱密码')
sender='312051952@qq.com'
#receiver=[input('输入邮箱地址:')]
receiver=['c4kaichen@163.com'] #显示收件人
message=MIMEText('python邮件发送测试3','plain','utf-8')#邮箱内容
message['To'] = Header('c4kaichen@163.com')
subject='python smtp测试3' #邮箱主题
message['Subject']=Header(subject,'utf-8')
smtpConnect.sendmail(sender,receiver,message.as_string())
smtpConnect.quit()

版本2 手动输入对方邮箱进行登录

#发送邮件并手动输入对方邮箱
import smtplib
from email.mime.text import MIMEText
from email.header import Header
#登录邮箱步骤
smtpConnect=smtplib.SMTP('smtp.qq.com',587)
smtpConnect.ehlo()
smtpConnect.starttls()
smtpConnect.login('312051952@qq.com','邮箱密码')
sender='312051952@qq.com'
receiver=input('输入邮箱地址:')
receiverdone=[receiver] #要用列表显示
#receiver=['c4kaichen@163.com'] #显示收件人
message=MIMEText('python邮件发送测试5','plain','utf-8')#邮箱内容
message['To'] = Header(receiver)
subject='python smtp测试4' #邮箱主题
message['Subject']=Header(subject,'utf-8')
smtpConnect.sendmail(sender,receiverdone,message.as_string())
smtpConnect.quit()

最新版本:

分别输入要登录的QQ邮箱密码账号

以及需要发送的对方账号以及邮件内容

#发送邮件并手动输入对方邮箱
import smtplib
from email.mime.text import MIMEText
from email.header import Header
#登录邮箱步骤
smtpConnect=smtplib.SMTP('smtp.qq.com',587)
smtpConnect.ehlo()
smtpConnect.starttls()
user=input('请输入QQ邮箱地址:')
passwd=input('请输入QQ邮箱密码:')
smtpConnect.login(user,passwd)
sender=user
receiver=input('输入对方邮箱地址:')
content=input('请输入要发送的内容:')
receiverdone=[receiver] #要用列表显示
#receiver=['c4kaichen@163.com'] #显示收件人
message=MIMEText(content,'plain','utf-8')#邮箱内容
message['To'] = Header(receiver)
subject='python smtp测试4' #邮箱主题
message['Subject']=Header(subject,'utf-8')
smtpConnect.sendmail(sender,receiverdone,message.as_string())
smtpConnect.quit()

手动输入邮箱及密码之后手动输入对方的邮箱,邮件主题,内容进行邮件的发送工作

# 发送邮件并手动输入对方邮箱
# 注意此处是针对QQ邮箱进行撰写
import smtplib
from email.mime.text import MIMEText
from email.header import Header # 登录邮箱步骤
smtpConnect = smtplib.SMTP('smtp.qq.com', 587)
smtpConnect.ehlo()
smtpConnect.starttls()
user = input('请输入QQ邮箱地址:')
passwd = input('请输入QQ邮箱密码:')
smtpConnect.login(user, passwd)
sender = user
receiver = input('输入对方邮箱地址:')
subject = input('请输入邮件主题:')
content = input('请输入要发送的内容:')
receiverdone = [receiver] # 要用列表显示
# receiver=['c4kaichen@163.com'] #显示收件人
message = MIMEText(content, 'plain', 'utf-8') # 邮箱内容
message['To'] = Header(receiver)
message['Subject'] = Header(subject, 'utf-8')
smtpConnect.sendmail(sender, receiverdone, message.as_string())
smtpConnect.quit()

新版本:每天的菜谱进行选择然后自动发送邮件

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
def current_time():
time_format='%Y-%d-%m %X'
time_current=time.strftime(time_format)
return time_current
#登录邮箱步骤
def sendmail(x):
smtpConnect=smtplib.SMTP('smtp.qq.com',587)
smtpConnect.ehlo()
smtpConnect.starttls()
smtpConnect.login('312051952@qq.com','邮箱密码')
sender='312051952@qq.com'
receiver=['c4kaichen@163.com'] #显示收件人
message=MIMEText(x,'plain','utf-8')#邮箱内容 此处建议采用plain 如果换成text发送过去的会是附件形式
message['To'] = Header('c4kaichen@163.com')
time_current=current_time()
subject='%s每日菜单'%time_current #邮箱主题:每日菜单
message['Subject']=Header(subject,'utf-8')
smtpConnect.sendmail(sender,receiver,message.as_string())
smtpConnect.quit()
import random
list_menu=['排骨冬瓜','清炒包菜',' 蒜泥西蓝花',' 清炒青菜',
' 筒骨汤',' 香干肉丝',' 丝瓜炒蛋',' 面条',' 沙县',' 品客']
def write_menu(args):
with open('menu_info','w',encoding='utf-8') as f:
f.writelines(args)
def read_menu():
with open('menu_info','r',encoding='utf-8') as f2:
data=f2.read()
return data num=0
item_menu=[]
count=input('请输入今天要吃几个菜:>>').strip()
if count.isdigit():
count=int(count)
while num<count:
item=random.choice(list_menu)
item_menu.append(item)
num+=1
if num==count:
print('\033[31;1m今日选择的菜单如下:\033[0m')
for p_item in item_menu:
print(p_item)
write_menu(item_menu)
x=read_menu()
sendmail(x)
else:
print('请重新输入')
input('press Enter to exit')

#add at 18-11-11

import smtplib
from email.header import Header
from email.mime.text import MIMEText
# 第三方 SMTP 服务
mail_host = "smtp.163.com" # SMTP服务器
mail_user = "c4kaichen" # 用户名
mail_pass = "XXXXX" # 授权密码,非登录密码
sender = 'c4kaichen@163.com' # 发件人邮箱(最好写全, 不然会失败)
receivers = '312051952@qq.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
title = '标题info'#标题
content = '正文info' # 正文
def sendEmail():
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
#message['To'] = ",".join(receivers)
message['To'] = receivers
message['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
print("mail has been send successfully.")
except smtplib.SMTPException as e:
print(e) def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
email_client = smtplib.SMTP(SMTP_host)
email_client.login(from_account, from_passwd)
# create msg
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8') # subject
msg['From'] = from_account
msg['To'] = to_account
email_client.sendmail(from_account, to_account, msg.as_string())
email_client.quit()
if __name__ == '__main__':
sendEmail()
# receiver = '***'
# send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

### add at 18-11-11    通过163邮箱每日IP推送

import socket

# 获取本机计算机名称
hostname = socket.gethostname()
#print(hostname)
# 获取本机ip列表
#ip = socket.gethostbyname_ex(hostname)
ip = socket.gethostbyname_ex(hostname)
addr=ip[2] #获取当前时间
import time
current_time=time.ctime() #获取计算机名
pc_name=socket.gethostname()
ip_info=current_time+' '+pc_name+' '+str(addr) import smtplib
from email.header import Header
from email.mime.text import MIMEText
# 第三方 SMTP 服务
mail_host = "smtp.163.com" # SMTP服务器
mail_user = "c4kaichen" # 用户名
mail_pass = "XXXXX" # 授权密码,非登录密码
sender = 'c4kaichen@163.com' # 发件人邮箱(最好写全, 不然会失败)
receivers = '312051952@qq.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
title = '每日ip' # 标题
content = ip_info#正文
def sendEmail():
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
#message['To'] = ",".join(receivers)
message['To'] = receivers
message['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
print("mail has been send successfully.")
except smtplib.SMTPException as e:
print(e) def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
email_client = smtplib.SMTP(SMTP_host)
email_client.login(from_account, from_passwd)
# create msg
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8') # subject
msg['From'] = from_account
msg['To'] = to_account
email_client.sendmail(from_account, to_account, msg.as_string())
email_client.quit()
if __name__ == '__main__':
sendEmail()
# receiver = '***'
# send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

升级版  邮件轰炸

import socket
from threading import Timer # 获取本机计算机名称
hostname = socket.gethostname()
#print(hostname)
# 获取本机ip列表
#ip = socket.gethostbyname_ex(hostname)
ip = socket.gethostbyname_ex(hostname)
addr=ip[2] #获取当前时间
import time
current_time=time.ctime() #获取计算机名
pc_name=socket.gethostname()
ip_info=current_time+' '+pc_name+' '+str(addr) import smtplib
from email.header import Header
from email.mime.text import MIMEText
# 第三方 SMTP 服务
mail_host = "smtp.163.com" # SMTP服务器
mail_user = "c4kaichen" # 用户名
mail_pass = "XXXXX" # 授权密码,非登录密码
sender = 'c4kaichen@163.com' # 发件人邮箱(最好写全, 不然会失败)
receivers = '312051952@qq.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
title = '每日ip' # 标题
content = ip_info#正文
def sendEmail():
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
#message['To'] = ",".join(receivers)
message['To'] = receivers
message['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
t=Timer(10,sendEmail)
t.start()
print("mail has been send successfully.")
except smtplib.SMTPException as e:
print(e) def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
email_client = smtplib.SMTP(SMTP_host)
email_client.login(from_account, from_passwd)
# create msg
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8') # subject
msg['From'] = from_account
msg['To'] = to_account
email_client.sendmail(from_account, to_account, msg.as_string())
email_client.quit()
if __name__ == '__main__':
sendEmail()
# receiver = '***'
# send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

Python撰写mail的更多相关文章

  1. Python之Mail编程

    # Mail编程- 管理程序 - Euroda使邮件普及 - Netscape,outlook,forxmail后来居上 - Hotmail使用浏览器发送邮件 ## 邮件工作流程- MUA邮件用户代理 ...

  2. Python 目录整理

    基础部分: 1  常量  2 字符编码  字符编码补充 3 编码集 4 break与continue 5装饰器 6 迭代器 7生成器 8面向过程 9模块 10包 11 递归调用 12文件的用途 13类 ...

  3. python之进程与线程

    什么是操作系统       可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统.还有没有其他的? 想想我们使用的手机,Google公司的Androi ...

  4. Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)

    内容整理自官方开发文档 系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Map ...

  5. Python用smtplib发送邮件

    参照了下面: 1. 先随便照着试试这个: http://blog.csdn.net/zhaoweikid/article/details/1638349 2. 这个写了一个很简洁的代码,看过NO.1就 ...

  6. 使用python发送简单的邮件

    from:http://blog.csdn.net/zhaoweikid/article/details/125898 前些时间,论坛上有人讨论怎么用python发送需要认证的邮件,我在我的FreeB ...

  7. python实现邮件发送完整代码(带附件发送方式)

    实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import ...

  8. python实现邮件发送

    实例补充: #**************************利用STMP自动发送邮件******************************import smtplibsmtp = smtp ...

  9. python之路: 线程、进程和协程

    进程和线程 既然看到这一章,那么你肯定知道现在的系统都是支持“多任务”的操作,比如: Mac OS X,UNIX,Linux,Windows等. 多任务:简单地说就是同时运行多个任务.譬如:你可以一边 ...

随机推荐

  1. Eclipse+Spring boot开发教程

    一.安装 其实spring boot官方已经提供了用于开发spring boot的定制版eclipse(STS,Spring Tool Suite)直接下载使用即可,但考虑到可能有些小伙伴不想又多装个 ...

  2. SocketServer模块,hmac模块验证client合法性

    hmac模块: 1.模块初识: import hmac # h = hmac.new() #括号里要给它连个bytes类型,一个是自定义的secret_key,一个是你想进行加密的bytes # 密文 ...

  3. react源码探索

    react核心部分为 虚拟dom对象 虚拟dom差异化算法 单向数据流渲染 组件生命周期 事件处理 1) 虚拟dom对象: reactDOM.render(args,element); 这个方法第一个 ...

  4. 深入剖析Java中的装箱和拆箱(缓存池技术)

    以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 简单一点说,装箱就是  自动将基本数据类型转换为包装器类型:拆箱就是  自动将包装器类型转换为基本数据类型. 二.装箱和拆箱是如何实现的 1:反编 ...

  5. Centos7.5安装Docker

    Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装 ...

  6. vue学习笔记 - 篇2

    1.借助Vue.extend()方法创建组件 注意点 var Aaa = Vue.extend({ template: "<h1>这是标题</h1>" }) ...

  7. list 的相关操作

    # ### 列表的相关操作 # (1) 列表的拼接 lst1 = [1,2,3] lst2 = [4,5,6] lst = lst1 + lst2 print(lst) # (2) 列表的重复 lst ...

  8. oracle11g的监听配置文件中的program和env两个配置,必须干掉,客户端才能正常连接

    oracle11g的监听配置文件中的program和env两个配置,必须干掉,客户端才能正常连接 oracle11g的监听配置文件中的program和env两个配置,必须干掉,客户端才能正常连接 or ...

  9. 周强201771010141《面向对象程序设计Java》第八周学习总结

    一.理论知识学习部分 Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口. 接口体中包含常量定义和方法定义,接口中只进行方法的声明,不提供方法的实现. 类似建立类的继承关系 ...

  10. SQL注入之Sqli-labs系列第三十四关(基于宽字符逃逸POST注入)和三十五关

    开始挑战第三十四关和第三十五关(Bypass add addslashes) 0x1查看源码 本关是post型的注入漏洞,同样的也是将post过来的内容进行了 ' \ 的处理. if(isset($_ ...