(注:记得请先开启邮箱的SMTP服务哦,下面以163邮箱为例)
163邮箱函数形式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">send_163_email</span><span class="hljs-params">(subject,message)</span>:</span> <span class="hljs-keyword">import</span> smtplib <span class="hljs-keyword">from</span> email.mime.text <span class="hljs-keyword">import</span> MIMEText <span class="hljs-keyword">from</span> email.header <span class="hljs-keyword">import</span> Header <span class="hljs-string">''' 记得请先开启邮箱的SMTP服务 '''</span> <span class="hljs-comment">## 发送邮件</span> sender = <span class="hljs-string">'量化模拟盘<xx@163.com>'</span> <span class="hljs-comment">#发送的邮箱</span> receiver = <span class="hljs-string">'XX@163.com'</span> <span class="hljs-comment">#要接受的邮箱(注:测试中发送其他邮箱会提示错误)</span> smtpserver = <span class="hljs-string">'smtp.163.com'</span> username = <span class="hljs-string">'XX@163.com'</span> <span class="hljs-comment">#你的邮箱账号</span> password = <span class="hljs-string">'**********'</span> <span class="hljs-comment">#你的邮箱密码</span> msg = MIMEText(str(message),<span class="hljs-string">'plain'</span>,<span class="hljs-string">'utf-8'</span>) <span class="hljs-comment">#中文需参数‘utf-8',单字节字符不需要</span> msg[<span class="hljs-string">'Subject'</span>] = Header(subject, <span class="hljs-string">'utf-8'</span>) <span class="hljs-comment">#邮件主题</span> msg[<span class="hljs-string">'to'</span>] = receiver msg[<span class="hljs-string">'from'</span>] = sender <span class="hljs-comment">#自己的邮件地址 </span> smtp = smtplib.SMTP() <span class="hljs-keyword">try</span> : smtp.connect(<span class="hljs-string">'smtp.163.com'</span>) <span class="hljs-comment"># 链接</span> smtp.login(username, password) <span class="hljs-comment"># 登陆</span> smtp.sendmail(sender, receiver, msg.as_string()) <span class="hljs-comment">#发送</span> <span class="hljs-keyword">print</span> <span class="hljs-string">'邮件发送成功'</span> <span class="hljs-keyword">except</span>: <span class="hljs-keyword">print</span> <span class="hljs-string">'邮件发送失败'</span> smtp.quit() <span class="hljs-comment"># 结束</span> |
1 2 3 4 |
<span class="hljs-attribute">df</span> = get_price(<span class="hljs-string">'000001.XSHE'</span>, start_date=<span class="hljs-string">'2015-06-01'</span>, end_date=<span class="hljs-string">'2015-06-05'</span>, frequency=<span class="hljs-string">'daily'</span>, fields=[<span class="hljs-string">'close'</span>,<span class="hljs-string">'low'</span>]) z = df[<span class="hljs-string">'close'</span>] send_163_email(subject=<span class="hljs-string">'Hi,JoinQuant!'</span>,message=z) |
结果如下:
由于QQ邮箱的smtp服务用了ssl认证,发往QQ邮箱函数形式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">send_qq_email</span><span class="hljs-params">(subject,message)</span>:</span> <span class="hljs-keyword">import</span> smtplib <span class="hljs-keyword">from</span> email.mime.text <span class="hljs-keyword">import</span> MIMEText <span class="hljs-keyword">from</span> email.header <span class="hljs-keyword">import</span> Header <span class="hljs-comment">## 发送邮件</span> sender = <span class="hljs-string">'量化模拟盘<12345678@qq.com>'</span> <span class="hljs-comment">#发送的邮箱</span> receiver = <span class="hljs-string">'12345678@qq.com'</span> <span class="hljs-comment">#要接受的邮箱(注:测试中发送其他邮箱会提示错误)</span> smtpserver = <span class="hljs-string">'smtp.qq.com'</span> username = <span class="hljs-string">'12345678@qq.com'</span> <span class="hljs-comment">#你的邮箱账号</span> password = <span class="hljs-string">'abcdefghijklmnop'</span> <span class="hljs-comment">#你的邮箱授权码。一个16位字符串</span> msg = MIMEText(str(message),<span class="hljs-string">'plain'</span>,<span class="hljs-string">'utf-8'</span>) <span class="hljs-comment">#中文需参数‘utf-8',单字节字符不需要</span> msg[<span class="hljs-string">'Subject'</span>] = Header(subject, <span class="hljs-string">'utf-8'</span>) <span class="hljs-comment">#邮件主题</span> msg[<span class="hljs-string">'to'</span>] = receiver msg[<span class="hljs-string">'from'</span>] = sender <span class="hljs-comment">#自己的邮件地址 </span> server = smtplib.SMTP_SSL(<span class="hljs-string">'smtp.qq.com'</span>) <span class="hljs-keyword">try</span> : <span class="hljs-comment">#server.connect() # ssl无需这条</span> server.login(username, password) <span class="hljs-comment"># 登陆</span> server.sendmail(sender, receiver, msg.as_string()) <span class="hljs-comment">#发送</span> <span class="hljs-keyword">print</span> <span class="hljs-string">'邮件发送成功'</span> <span class="hljs-keyword">except</span>: <span class="hljs-keyword">print</span> <span class="hljs-string">'邮件发送失败'</span> server.quit() <span class="hljs-comment"># 结束</span> |
1 |
send_qq_email(subject=<span class="hljs-string">'Info from JoinQuant'</span>, message=<span class="hljs-string">"test mail"</span>) |