Python撰写mail
版本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)