Saturday, July 11, 2026
HomeLanguagesScrapy – Sending an E-mail

Scrapy – Sending an E-mail

Prerequisites: Scrapy

Scrapy provides its own facility for sending e-mails which is extremely easy to use, and it’s implemented using Twisted non-blocking IO, to avoid interfering with the non-blocking IO of the crawler. This article discusses how mail can be sent using scrapy. 

For this MailSender class needs to imported from scrapy and then a dedicated function with correct parameters needs to be called to successfully send a mail.

Functions used

  • MailSender() is used to setup the mailer.

Syntax:

classscrapy.mail.MailSender(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None)

Parameters

  • smtphost (str or bytes) – the SMTP host to use for sending the emails.
  • mailfrom (str) – the address used to send emails (in the From: header).
  • smtpuser – the SMTP user.  If omitted, the MAIL_USER setting will be used. If not given, no SMTP authentication is going to be performed..
  • smtppass (str or bytes) – the SMTP pass for authentication.
  • smtpport (int) – the SMTP port to connect to
  • smtptls (bool) – enforce using SMTP STARTTLS
  • smtpssl (bool) – enforce employing a secure SSL connection
  • classmethodfrom_settings() Instantiates a Scrapy settings object, which can respect these Scrapy settings.

Syntax:

classmethodfrom_settings(settings)

Parameters

  • settings (scrapy.settings.Settings object) – the e-mail recipients
  • send() sends email to the given recipients.

Syntax:

send(to, subject, body, cc=None, attachs=(), mimetype=’text/plain’, charset=None)

Parameters

  • to (str or list) –the e-mail recipients as a string or as an inventory of string
  • subject (str) – the subject of the e-mail
  • cc (str or list) – the e-mails to CC as a string or as an inventory of strings
  • body (str) – the e-mail body
  • attachs (collections.abc.Iterable) – an iterable of tuples (attach_name, mimetype, file_object) where attach_name is a string with the name that will appear on the e-mail’s attachment, mimetype is the mimetype of the attachment and file_object  may be a readable file object with the contents of the attachment
  • charset (str) – the character encoding to use for the e-mail contents

Approach

  • Import module
  • Setup mailer
  • Add subject and body of the mail
  • Supply with sender and receiver e-mail addresses
  • Send mail

Example:

Python3




# import module
from scrapy.mail import MailSender
  
# setup mailer
mailer = MailSender(mailfrom="Something@gmail.com",
                    smtphost="smtp.gmail.com", smtpport=465, smtppass="MySecretPassword")
  
# send mail
mailer.send(to=["abc@gmail.com"], subject="Scrapy Mail",
            body="Hi ! GeeksForGeeks", cc=["another@example.com"])


Output:

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

3 COMMENTS

Most Popular

Dominic
32519 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6901 POSTS0 COMMENTS
Nicole Veronica
12017 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12111 POSTS0 COMMENTS
Shaida Kate Naidoo
7021 POSTS0 COMMENTS
Ted Musemwa
7263 POSTS0 COMMENTS
Thapelo Manthata
6978 POSTS0 COMMENTS
Umr Jansen
6968 POSTS0 COMMENTS