python脚本连续发送QQ邮件

今天习得用python写一个连续发送QQ邮件的脚本,经过测试,成功给国内外的服务器发送邮件,包括QQ邮箱、163邮箱、google邮箱,香港科技大学的邮箱和爱丁堡大学的邮箱。一下逐步解答相关技巧。

首先,执行如下操作,__init__ 标志该文件夹是一个python程序包

$mkdir automail
$cd automail
$gedit qqmail
$touch __init__

打开 qqmail ,写入如下代码。

 1 #-*- coding: utf -8 -*-
 2 import sys, os, re, urllib, urlparse
 3 import smtplib
 4 import traceback
 5 from email.mime.text import MIMEText
 6 from email.mime.multipart import MIMEMultipart
 7
 8 def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password):
 9     ‘‘‘
10     @subject:邮件主题
11     @msg:邮件内容
12     @toaddrs:收信人的邮箱地址
13     @fromaddr:发信人的邮箱地址
14     @smtpaddr:smtp服务地址,可以在邮箱看,比如163邮箱为smtp.163.com
15     @password:发信人的邮箱密码
16     ‘‘‘
17     mail_msg = MIMEMultipart()
18     if not isinstance(subject,unicode):
19         subject = unicode(subject, ‘utf-8‘)
20     mail_msg[‘Subject‘] = subject
21     mail_msg[‘From‘] = fromaddr
22     mail_msg[‘To‘] = toaddrs
23     mail_msg.attach(MIMEText(msg, ‘plain‘, ‘utf-8‘))
24     #mail_msg.attach(MIMEText(msg, ‘html‘, ‘utf-8‘))
25     try:
26         s = smtplib.SMTP()
27         s.connect(smtpaddr)  #连接smtp服务器
28         s.login(fromaddr,password)  #登录邮箱
29         s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #发送邮件
30         print "mail sent to %s succeed!" % (toaddrs)
31         s.quit()
32     except Exception,e:
33        print "Error: unable to send email to %s!" % (toaddrs)
34        print traceback.format_exc()
35
36 if __name__ == ‘__main__‘:
37     fromaddr = "[email protected]"
38     smtpaddr = "smtp.qq.com"
40     subject = "Robio2018"
41     password = "svwpwgunhrbpbjha"
42     file_object = open(‘letter‘)
43     msg = file_object.read()
44     file_object.close()
45     for toaddrs in open("namelist"):
46         prof = toaddrs
47         sendmail(subject,msg,prof,fromaddr,smtpaddr,password)

代码解读:

  • import email
    import smtplib

    SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件HTML邮件以及带附件的邮件。Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

  • def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password)

    最核心的代码就是该函数,正确填写该函数的实参、设置邮箱允许第三方操作。

  • mail_msg.attach(MIMEText(msg, ‘plain‘, ‘utf-8‘))

    第23行,第一个参数是邮件正文内容;第二个参数 ‘plain‘ ,因为我们发送的是纯文本的邮件;第三个参数保证多语言的兼容性。关于发送多种类型的邮件,可以参考廖雪峰老师的教程

  • file_object = open(‘letter‘)
    msg = file_object.read()
    file_object.close()

    代码42-44,打开与脚本处于同一个路径中的letter文档,读取全部内容并存储于一个大型的msg字符串中,及时关闭该文档,不然会一直占用内存。如果每次都要手动关闭比较麻烦,python有一个with 关键字可以自动关闭文档,请自行百度。

  • for toaddrs in open("namelist")

    第45行,使用一个for循环逐行从收件人邮箱列表中读取收件人邮箱。

原文地址:https://www.cnblogs.com/gdut-gordon/p/9259639.html

时间: 2024-10-01 00:01:08

python脚本连续发送QQ邮件的相关文章

Java发送QQ邮件

面试的时候被问到这个问题,别人问我用Java发过邮件没有,被问得一脸懵逼.然后就研究了一下,不是很难,按照网上的方法折腾了几天就搞出来了. 首先,使用QQ邮箱发送邮件之前需要在邮箱里面配置,开启pop3和smtp服务,其实这就是两个网络协议,一个是接受邮件的协议,一个是发送邮件的协议: POP3 是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议.它是因特网电子邮件的第一个离线协议标准,P

java通过SMTP发送QQ邮件(参考自龙果学院)

java通过SMTP发送QQ邮件编辑 个人邮箱开通SMTP服务(进入个人邮箱,点击设置–>账户):  点击了账户后,往下拉可以看到SMTP服务选项,默认情况下这个选项是不开启的.点击开启腾讯会进行身份验证,身份验证通过以后,会收到一个用于使用SMTP的16位口令,验证身份的过程中把收到的口令保存下来,因为后面要使用SMTP功能必须要用到这个口令.  具体实现代码:     public static void main(String args[]) {        // 邮件内容       

Java发送QQ邮件-附jar包下载链接

Java发送QQ邮件 jar包链接 链接:https://pan.baidu.com/s/1mt7LsPVIuMl5HLXEOppWkQ 提取码:x4jf 示例代码: package java2; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * 测试发送邮件 */ p

使用python发送QQ邮件

这里用到了Python的两个包来发送邮件: smtplib 和 email . Python 的 email 模块里包含了许多实用的邮件格式设置函数,可以用来创建邮件“包裹”.使用的 MIMEText 对象,为底层的 MIME(Multipurpose Internet MailExtensions,多用途互联网邮件扩展类型)协议传输创建了一封空邮件,最后通过高层的SMTP 协议发送出去. MIMEText 对象 msg 包括收发邮箱地址.邮件正文和主题,Python 通过它就可以创建一封格式正

python 发送qq邮件

# coding=utf-8import smtplibfrom email.mime.text import MIMETextimport email def sen(file_new): msg_from = '[email protected]' # 发送方邮箱 passwd = 'xthwzlXXX' # 填入发送方邮箱的授权码 msg_to = '[email protected]' # 收件人邮箱 subject = "python邮件测试" # 主题 content =

python 发送QQ邮件的小例子

首先QQ邮件用第三方客户端发送要申请验证码.而不是QQ的密码. 授权码就是你接下来登录要使用的密码 那么剩下的工作就很简单了.附简单代码如下: #coding:utf-8 import smtplib from email.mime.text import MIMEText _user = "[email protected]" _pwd = "12341234134" #用授权码 _to = "[email protected]" msg =

使用selenium+selenium发送QQ邮件

参考 :    初识selenium-发送QQ邮件  链接------>https://blog.csdn.net/qiye005/article/details/80259607 前言: 为实现selenium+python自动发送QQ邮件功能,需要搭建的环境:安装selenium包(pip install selenium)及安装谷歌驱动器(http://chromedriver.storage.googleapis.com/index.html).并且要了解要selenium进行元素定位的

java spring 开启SMTP服务发送QQ邮件

首先进入自己的QQ邮箱,在设置中修改账户信息 然后来至底部 点击开启,再用手机发送对应信息到指定号码,然后点击我已发送 获取授权码 注意提示: 到这里,相信你已经开通了SMTP服务,这样就可以在java code发送邮件了 接下来的是Spring 中使用邮件服务 首先是配置信息使用的是587端口,刚开始用465端口我纠结了好久(使用465端口的错误详情),用不了,你可以尝试,默认的25端口应该也是不适合的 <!-- 邮件服务 --> <bean id="mailSender&q

使用阿里云服务器写shell脚本发送qq邮件的三个形式

[准备工作] IPtables的使用如下命令:(执行以下以下命令把25和465端口打开) iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 465 -j ACCEPT iptables -A OUTPUT -p tcp --sport 465 -j ACCEPT 要先开启 经过以上的三步我们就可以