Python撰写mail

时间:2021-04-10 07:06:33

版本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()

Python撰写mail

Python撰写mail

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

# 发送邮件并手动输入对方邮箱
# 注意此处是针对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)