爬虫:Scrapy13 - 发送 email
虽然 Python 通过 smtplib 库使得发送 email 变得非常简单,Scrapy 仍然提供了自己的实现。该功能十分易用,同时由于采用了 Twisted 非阻塞式(non-blocking)IO,其避免了对爬虫的非阻塞式 IO 的影响。另外,其也提供了简单的 API 来发送附件。通过一些 settings 设置,可以很简单的进行配置。
简单例子
有两种方法可以创建邮件发送器(mail sender)。可以通过标准构造器(constructor)创建:
from scrapy.mail import MailSender mailer = MailSender()
或者可以传递一个 Scrapy 设置对象,其会参考 settings:
mailer = MailSender.from_settings(settings)
这是如何来发送邮件(不包括附件):
mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"])
MailSender 类参考手册
在 Scrapy 中发送 email 推荐使用 MailSender。其同框架中的其它部分一样,使用了 Twsited 非阻塞式(non-blocking)IO。
class scrapy.mail.MailSender(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None)
参数:
- smtphost (str) – 发送 email 的 SMTP 主机(host)。如果忽略,则使用 MAIL_HOST 。
- mailfrom (str) – 用于发送 email 的地址(address)(填入 From:) 。如果忽略,则使用 MAIL_FROM 。
- smtpuser – SMTP 用户。如果忽略,则使用 MAIL_USER 。如果未给定,则将不会进行 SMTP 认证(authentication)。
- smtppass (str) – SMTP 认证的密码
- smtpport (int) – SMTP 连接的短裤
- smtptls – 强制使用 STARTTLS
- smtpssl (boolean) – 强制使用 SSL 连接
classmethod from_settings(settings)
使用 Scrapy 设置对象来初始化对象。
参数:
settings (scrapy.settings.Settings object) – the e-mail recipients
send(to, subject, body, cc=None, attachs=(), mimetype='text/plain')
发送 email 到给定的接收者。
参数:
- to (list) – email 接收
- subject (str) – email 内容
- cc (list) – 抄送的人
- body (str) – email 的内容
- attachs (iterable) – 可迭代的元组 (attach_name, mimetype, file_object) attach_name 是一个在 email 的附件中显示的名字的字符串,mimetype 是附件的 mime 类型, file_object 是包含附件内容的可读的文件对象。
- mimetype (str) – email 的 mime 类型
Mail 设置
这些设置定义了 MailSender 构造器的默认值。使得你在不编写任何一行代码的情况下,为你的项目配置实现 email 通知的功能。
MAIL_FROM
默认值: 'scrapy@localhost'
用于发送 email 的地址(address)(填入 From:) 。
MAIL_HOST
默认值:'localhost'
发送 email 的 SMTP 主机(host)。
MAIL_PORT
默认值:25
发用邮件的 SMTP 端口。
MAIL_USER
默认值:None
SMTP 用户。如果未给定,则将不会进行 SMTP 认证(authentication)。
MAIL_PASS
默认值:None
用于 SMTP 认证,与 MAIL_USER 配套的密码。
MAIL_TLS
默认值:False
强制使用 STARTTLS。STARTTLS 能使得在已经存在的不安全连接上,通过使用 SSL/TLS 来实现安全连接。
MAIL_SSL
默认值: False
强制使用 SSL 加密连接。
爬虫:Scrapy13 - 发送 email的更多相关文章
- java发送email
package com.assess.util; import java.io.File; import java.util.ArrayList; import java.util.List; imp ...
- Spring 发送 Email
本文转自:http://zl198751.iteye.com/blog/757617 看到了本文,收获颇丰,感谢之至! 首先介绍下Email的发送流程: 需要选中smtp邮件服务器,Yahoo不提供免 ...
- 使用PHP发送email进行账号激活或者密码修改操作
使用PHPMailer编写发送邮件 PHPMailer需PHP的socket扩展支持,而PHPMailer链接qq域名邮箱时需要ssl加密方式(qq邮箱最近做了限制,新开域名邮箱不再允许通过smtp协 ...
- 使用python原生的方法实现发送email
使用python原生的方法实现发送email import smtplib from email.mime.text import MIMEText from email.mime.multipart ...
- C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...
- 【WinForm】C# 发送Email
发送Email 的条件 1.SmtpClient SMTP 协议 即 Host 处理事务的主机或IP地址 //smtp.163.com UseDefaultCredentia ...
- [转]C#发送Email邮件 (实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用:using System.Net.Mail;using System.Text;using System.Net; 程序 ...
- asp.net发送E-mail
发送电子邮件也是项目开发当中经常用到的功能,这里我整理了一个发送电子邮件(带附件,支持多用户发送,主送.抄送)的类库,供大家参考. 先上两个实体类,用于封装成Mail对象. /// <summa ...
- 使用spring 并加载模板发送Email 发邮件 java 模板
以下例子是使用spring发送email,然后加载到固定的模板,挺好的,大家可以试试 需要使用到spring-context 包 和 com.springsource.org.apache.veloc ...
随机推荐
- CentOS中配置php环境
1.安装apache: yum install httpd httpd-devel 2.安装mysql: yum install mysql mysql-server 3.安装php: yum ...
- An error occurred at line: 1 in the generated java file问题处理
tomcat6启动后,加载jsp页面报错,提示无法将jsp编译为class文件,主要报错信息如下: An error occurred at line: 1 in the generated java ...
- macOS Sierra系统偏好设置->安全性和隐私->通用中的“任何来源” 选项开与关
显示"任何来源"选项在控制台中执行: sudo spctl --master-disable 不显示"任何来源"选项(macOS 10.12默认为不显示)在控制 ...
- 前端jQuery之文档操作
1.文档操作内部插入 A.append(B) 吧B添加到A的后面 A.appendTo(B) 吧A添加到B的后面 A.prepend(B) 吧B添加到A的前面 A.prependTo(B) 吧A添加到 ...
- 在Linux上部署Kettle环境
首先我们有一个正常安装的,桌面版的Linux. Kettle的应用程序是Linux版本与Windows版本在同一个文件夹下共存的,所以可以直接把本机上的Kettle解压,通过FTP工具上传到Linux ...
- nvl()函数和nvl2()函数
如果你某个字段为空,但是你想让这个字段显示0,可以使用nvl(字段名,0),当然这个0也可以换成其他东西,如:1,2,3…… 一 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式 ...
- Unicode编码字符 转换成汉字
转载:http://www.chengxuyuans.com/iPhone_IOS/48128.html - (NSString *)replaceUnicode:(NSString *)unicod ...
- Linux中的代码编辑器vim
Vim的三种工作模式 命令行模式 插入模式 底行模式 Vim 的命令行模式 命令行模式是进入vim后的初始模式,在该模式下主要是使用方向键来移动光标的位置,并通过相应的命令来进行文字的编辑. 切换方法 ...
- Drazil and Tiles CodeForces - 516B (类拓扑)
Drazil created a following problem about putting 1 × 2 tiles into an n × m grid: "There is a gr ...
- 利用pandas和numpy计算表中每一列的均值
import numpy as np import pandas as pd df = pd.DataFrame({'var1':np.random.rand(100), #生成100个0到1之间的随 ...