使用python中的smtplib库,写一个简单的发送qq邮件程序,速成!!

#-*-coding:utf-8-*-
import smtplib
from  smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header
#定义一个字典存储发送和接收,邮箱账号密码主题、内容及编码相关信息
mail_info = {
    "from": "[email protected]",  #发件人
    "to": "[email protected]",    #收件人
    "hostname": "smtp.qq.com",   #qq smtp服务器
    "username": "[email protected]", #邮箱账号
    "password": "xxxxxxxxxxxx",  #邮箱密码,这个密码为qq邮箱授权码,具体设置请见:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
    "subject": "测试一下发邮件",    #邮件主题
    "mail_text": "我只想测试下邮件能否发送",#邮件内容
    "mail_encoding": "utf-8"      #编码格式
}
#使用MIME格式传送内容
msg=MIMEText(mail_info[‘mail_text‘],"plain",mail_info[‘mail_encoding‘])
#设置邮件主题
msg[‘Subject‘] = Header(mail_info[‘subject‘],mail_info[‘mail_encoding‘])
#设置邮件发件人
msg["from"] = mail_info["from"]
#设置收件人
msg["to"] = mail_info["to"]
#创建一个smtp对象
smtp=SMTP_SSL()
#smtp.set_debuglevel(1)
try:
#连接qq smtp服务器
smtp.connect(mail_info[‘hostname‘])
#使用账号密码登录邮箱
smtp.login(mail_info[‘username‘],mail_info[‘password‘])
#发送邮件
smtp.sendmail(mail_info[‘from‘],mail_info[‘to‘],msg.as_string())
#关闭邮件对象
smtp.quit()
except smtplib.SMTPAuthenticationError as e:
print e
else:
print "发送成功"
时间: 2024-10-11 04:00:09

使用python中的smtplib库,写一个简单的发送qq邮件程序,速成!!的相关文章

用Spark写一个简单的wordcount词频统计程序

public class WordCountLocal {  public static void main(String[] args) {   SparkConf conf = new SparkConf().setAppName("WordCountLocal").setMaster("local[2]");      JavaSparkContext sc = new JavaSparkContext(conf);   JavaRDD<String&g

分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业不是百度来的,我只是百度了一些示例代码的意思,怎么用!算了,越解释万一越黑呢!哈哈O(∩_∩)O哈哈~) ----------------------------------------------------------------分界线------------------------------

python中from module import * 的一个陷阱

from module import *把module中的成员全部导到了当前的global namespace,访问起来就比较方便了.当然,python style一般不建议这么做,因为可能引起name conflict. 但还有另外一个问题 - 你以为你修改了某个变量,其实,被from module import *后的那个并没有被更新,非常危险,因为程序有可能还可以正常运行, 只不过结果错了,到了production才被发现就比较惨了. 举个例子: 你定义了一些变量在base模块中: # r

也写一个简单的网络爬虫

引子 在cnblogs也混了许久,不过碍于平日工作太忙,一篇随笔也没有写过.最近经常感觉到自己曾经积累过的经验逐步的丢失,于是开通了博客,主要是记录一下自己在业余时间里玩的一些东西. 缘起 言归正传.某次在在某高校网站闲逛,看到了一些有趣的东西想要保存起来,但是却分散在各个页面,难以下手.使用baidu,google却有无法避免的搜索到此站点之外的内容.于是就想如果有一个爬虫,可以抓取指定域名的某些感兴趣的内容,不是很好.在网上简单搜索了一下,简单的都不满意,功能强大的又太复杂,就想自己写一个.

DuiVision开发教程(2)-如何写一个简单的界面程序

基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说明如何写一个简单的界面程序. 第一步:使用VC向导创建一个有两个tab页面的DuiVision工程 向导生成的解决方案文件如下: 默认有两个工程,分别是DuiVision库和应用程序工程.自动生成的代码目录中bin目录下的内容那个如下,bkimg目录存放窗口背景图片,skins目录存放图片资源,xm

DuiLib学习笔记2——写一个简单的程序

我们要独立出来自己创建一个项目,在我们自己的项目上加皮肤这才是初衷.我的新建项目名为:duilibTest 在duilib根目录下面有个 Duilib入门文档.doc 我们就按这个教程开始入门 首先新建一个win32项目 去DuiLib根目录,把目录下DuiLib文件夹拷贝到新建项目的根目录.再把这个项目添加进我们解决方案中. 从教程里面把以下代码粘贴到我们项目的stdafx.h中 // Duilib使用设置部分 #pragma once #define WIN32_LEAN_AND_MEAN

从零开始写一个arm下的裸板程序

从零开始写一个arm下的裸板程序.我们整个程序是基于uboot运行的. 所有我们可以借助uboot中的printf来输出,默认开发版的标准输出是串口. 电脑的默认标准输出的屏幕. 1.需要创建的文件由include文件夹,用来存放头文件. 2.创建一个hw.h头文件. 3.编写一个common.h,它定义了借用uboot的printf的宏.和NULL这个宏的定义. 4.hw.c 硬件相关的文件. 5.main.c c文件. 6.start.s 汇编文件. 7.ld.lds 链接脚本, 8.Mak

linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存. 下面就开始学习如何写一个简单的字符设备驱动.首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作. 1.主设备号和次设备号 对于字符设备的访问是通过文件系统中的设备名称进行的.他们通常位于/dev目录下.如下: [plain] vie

Python中基本的读文件和简单数据处理

Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六个案例: Find the lowest crime rate(读取csv文件,字符串切分,for循环和if判断过滤数据) Discover weather pattern in LA(for循环和if判断进行频数统计) Building a Spell Checker(词频统计,字符串预处理,字典