Python用代码实现发送邮件

今天我们用Python实现简单的发送邮件。

首先我们必须要有邮箱账号,发件人的邮箱必须先设置开启SMTP协议。

使用邮箱的授权码。

以q邮箱为例,我们可以去邮箱设置里面看一下是否开启了SMTP协议。

在设置里面找到账户,然后往下找。

找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

我们只要开启第一个POP3/SMTP服务就可以了,如果没有开启这个服务需要验证手机号开启一下,得到授权码。

已经开启过的可以点击生成授权码,验证一下就可以得到授权码。

把这个授权码保存起来。

既然邮箱搞定了我就直接上代码吧。

代码如下:

# 简单邮件传输协议
import smtplib
import email
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
# 设置邮箱的域名
HOST = 'smtp.qq.com'
# 设置邮件标题
SUBJECT = 'csdn博客代码'
# 设置发件人邮箱
FROM = '发件人邮箱@qq.com'
# 设置收件人邮箱
TO = '邮箱1@qq.com,邮箱2@qq.com'
message = MIMEMultipart('related')

#--------------------------------------发送文本-----------------
# 发送邮件主体到对方的邮箱中
message_html = MIMEText('<h2 style="color:red;font-size:100px">CSDN博客超级好</h2><img src="cid:big">','html','utf-8')
message.attach(message_html)

#-------------------------------------发送图片--------------------
# rb  读取二进制文件
# 要确定当前目录有1.jpg这个文件
image_data = open('1.jpg','rb')
# 设置读取获取的二进制数据
message_image = MIMEImage(image_data.read())
# 关闭刚才打开的文件
image_data.close()
message_image.add_header('Content-ID','big')
# 添加图片文件到邮件信息当中去
# message.attach(message_image)

#-------------------------------------添加文件---------------------
# 要确定当前目录有table.xls这个文件
message_xlsx = MIMEText(open('table.xls','rb').read(),'base64','utf-8')
# 设置文件在附件当中的名字
message_xlsx['Content-Disposition'] = 'attachment;filename="test1111.xlsx"'
message.attach(message_xlsx)

# 设置邮件发件人
message['From'] = FROM
# 设置邮件收件人
message['To'] = TO
# 设置邮件标题
message['Subject'] = SUBJECT

# 获取简单邮件传输协议的证书
email_client = smtplib.SMTP_SSL()
# 设置发件人邮箱的域名和端口,端口为465
email_client.connect(HOST,'465')
# ---------------------------邮箱授权码------------------------------
result = email_client.login(FROM,'邮箱授权码')
print('登录结果',result)
email_client.sendmail(from_addr=FROM,to_addrs=TO.split(','),msg=message.as_string())
# 关闭邮件发送客户端
email_client.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发布了23 篇原创文章 · 获赞 9 · 访问量 6万+
展开阅读全文

关于 python 的一个自动登录脚本的问题

10-28

一个要等5秒之后才可以登录,有onclick() 函数的应该怎么做一个自动登陆的python脚步,哪个大神给我讲一下。万分谢谢。 这是网页源代码片段 function Clicked(){ if(sv1==1) document.form1.v6ip.value=myv6ip; if(osele!=1){ if(sv==2&&m46==1) v4serip=v6; open("http://"+v4serip+":9002/In0","p99","width=280,height=50,left=0,top=0,toolbar=no,crollbars=no,status=no"); } var thisform=document.forms[0]; if(thisform.DDDDD.value=="") { thisform.DDDDD.focus(); alert("请您输入用户帐号"); return false; } else if(thisform.upass.value=="") { thisform.upass.focus(); alert("请您输入用户密码"); return false; } else { setCookie("myusername",thisform.DDDDD.value,10); if(thisform.savePWD.checked) setCookie("pwd",thisform.upass.value,10); else setCookie("pwd","",-10); setCookie("username",thisform.DDDDD.value,10) setCookie("smartdot",thisform.upass.value,10) thisform.submit(); } } function tologin(){ var thisform=document.forms[0]; if(thisform.DDDDD.value=="") { thisform.DDDDD.focus(); alert("请您输入用户帐号"); return false; } else if(thisform.upass.value=="") { thisform.upass.focus(); alert("请您输入用户密码"); return false; } else { setCookie("myusername",thisform.DDDDD.value,10); if(thisform.savePWD.checked) setCookie("pwd",thisform.upass.value,10); else setCookie("pwd","",-10); setCookie("username",thisform.DDDDD.value,10) setCookie("smartdot",thisform.upass.value,10) return true; } } function setCookie(cookieName,cvalue,expiredays,path){ var expireDate = new Date(); var expireStr = ""; if (expiredays != null) { expireDate.setTime(expireDate.getTime()+(expiredays*24*3600*1000)); expireStr="; expires="+expireDate.toGMTString(); } pathStr = (path == null) ? "; path=/" : "; path=" + path; document.cookie = cookieName + '=' + escape(cvalue) + expireStr + pathStr; } function getCookie(cookieName) { var index=-1; if(document.cookie) index=document.cookie.indexOf(cookieName); if(index==-1) { return ""; } else { var iBegin = (document.cookie.indexOf("=", index) +1); var iEnd =document.cookie.indexOf(";", index); if (iEnd == -1) { iEnd = document.cookie.length; } return unescape(document.cookie.substring(iBegin,iEnd)); } } function test1() { document.forms[0].DDDDD.value=getCookie('myusername'); var pwd = getCookie('pwd'); if (pwd != ''){ document.forms[0].upass.value = pwd; document.forms[0].savePWD.checked = true; } setFormFocus(); } function $(id) { return document.getElementById(id); } var remain =5; function init(){ $("btn").innerHTML = "请稍等("+(remain--)+"秒)"; if(remain>-1){ window.setTimeout(init,1000); } else{ $("btn").disabled = false; $("btn").innerHTML = "登录 Login"; } } function on_load(){ test1(); init(); var ua = window.navigator.userAgent.toLowerCase(); url6='iv6';if (ua.indexOf("firefox")>-1)url6='nv6'; if(sv==1&&sv1==0&&domain!='dr.com')document.getElementById("c").src='http://'+domain+':9002/'+url6; } <button type= "submit" id="btn" onclick="Clicked();" disabled="disabled" style="background-image:url('a20.jpg'); width:124px; height:26px; border:medium none;cursor:pointer;font-size: 9pt; color:#0D439E;">登录 Login</button> 万分感谢 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览