Рубрики

Отправить письмо с вложением из вашей учетной записи Gmail, используя Python

В прошлой статье мы обсудили основы отправки почты из учетной записи Gmail без какой-либо темы, а также без каких-либо вложений . Сегодня мы узнаем, как отправлять почту с вложением и темой, используя Python. Прежде чем двигаться дальше, настоятельно рекомендуется научиться отправлять простую почту с использованием Python и изучить основы работы библиотеки smtplib из Python.
Если вы прочитали предыдущую статью, вы узнали, как создается сеанс и как он работает. Теперь вам нужно научиться прикреплять файл и тему к почте. Для этого вам нужно импортировать некоторые нативные библиотеки Python. Из этих библиотек вам необходимо импортировать инструменты, используемые в наших программах.

Действия для отправки почты с вложениями из учетной записи Gmail:

  1. Для добавления вложения вам необходимо импортировать:
    • импорт smtplib
    • из email.mime.multipart импорт MIMEMultipart
    • из email.mime.text импорт MIMEText
    • из email.mime.base импортировать MIMEBase
    • из кодировщиков импорта электронной почты

    Вот некоторые библиотеки, которые сделают нашу работу простой. Это нативные библиотеки, и вам не нужно импортировать для этого какую-либо внешнюю библиотеку.

  2. Во-первых, создайте экземпляр MIMEMultipart, а именно «msg» для начала.
  3. Укажите идентификатор электронной почты отправителя, идентификатор электронной почты получателя и тему в ключах «От», «Кому» и «Тема» созданного экземпляра «msg».
  4. В строке напишите тело сообщения, которое вы хотите отправить, а именно тело. Теперь присоедините тело с экземпляром msg, используя функцию attach.
  5. Откройте файл, который вы хотите прикрепить, в режиме «rb». Затем создайте экземпляр MIMEBase с двумя параметрами. Первый — это _maintype, а другой — _subtype. Это базовый класс для всех MIME-специфичных подклассов Message.
    Обратите внимание, что «_maintype» является основным типом Content-Type (например, текст или изображение), а «_subtype» является второстепенным типом Content-Type (например, plain или gif или другой носитель).
  6. set_payload используется для изменения полезной нагрузки закодированной формы. Закодируйте его в encode_base64. И, наконец, прикрепите файл с созданным MIMEMultipart экземпляром msg.

После выполнения этих шагов следуйте инструкциям, описанным в предыдущей статье, чтобы создать сеанс, защитить его и проверить подлинность, а затем, после отправки почты, завершить сеанс.

# Python код для иллюстрации Отправка почты с вложениями
# из вашего аккаунта Gmail

  
# библиотеки для импорта

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.base import MIMEBase

from email import encoders

   

fromaddr = "EMAIL address of the sender"

toaddr = "EMAIL address of the receiver"

   
# экземпляр MIMEMultipart

msg = MIMEMultipart()

  
# хранение адреса электронной почты отправителей

msg['From'] = fromaddr

  
# хранение адреса электронной почты получателя

msg['To'] = toaddr

  
# хранение предмета

msg['Subject'] = "Subject of the Mail"

  
# строка для хранения тела письма

body = "Body_of_the_mail"

  
# присоединить тело к экземпляру msg

msg.attach(MIMEText(body, 'plain'))

  
# открыть файл для отправки

filename = "File_name_with_extension"

attachment = open("Path of the file", "rb")

  
# экземпляр MIMEBase с именем p

p = MIMEBase('application', 'octet-stream')

  
# Чтобы изменить полезную нагрузку в закодированную форму
p.set_payload((attachment).read())

  
# кодировать в base64
encoders.encode_base64(p)

   

p.add_header('Content-Disposition', "attachment; filename= %s" % filename)

  
# присоединить экземпляр 'p' к экземпляру 'msg'
msg.attach(p)

  
# создает сеанс SMTP

s = smtplib.SMTP('smtp.gmail.com', 587)

  
# запуск TLS для безопасности
s.starttls()

  
# Аутентификация

s.login(fromaddr, "Password_of_the_sender")

  
# Преобразует многочастное сообщение в строку

text = msg.as_string()

  
# отправка почты
s.sendmail(fromaddr, toaddr, text)

  
# прекращение сеанса
s.quit()


Важные моменты:

  • Вы можете использовать циклы для отправки писем нескольким людям.
  • Этот код прост в реализации. Но это не будет работать, если вы включили двухэтапную аутентификацию в своей учетной записи Gmail. Сначала необходимо отключить двухэтапную проверку.
  • Используя этот метод, Gmail всегда будет помещать вашу почту в основной раздел, и отправленные письма не будут являться спамом.

Эта статья предоставлена Rishabh Bansal . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Отправить письмо с вложением из вашей учетной записи Gmail, используя Python

0.00 (0%) 0 votes