У меня проблемы с пониманием того, как отправить вложение с помощью Python. Я успешно отправил простые сообщения по электронной почте smtplib
. Может кто-нибудь объяснить, пожалуйста, как отправить вложение в электронном письме. Я знаю, что есть другие посты в сети, но как начинающий Python, я нахожу их трудно понять.
283
Ответы:
Вот еще один:
Это почти так же, как в первом примере ... Но это должно быть проще.
источник
file
вf
.part = MIMEApplication(open(f, 'rb').read())
Вот модифицированная версия
Oli
для Python 3источник
import pathlib
наfrom pathlib import Path
это код, который я в конечном итоге использовал:
Код во многом такой же, как и у Оли. Спасибо всем
Код основан на сообщении о проблеме с вложением в двоичный файл .
источник
from email.mime.base import MIMEBase
Адаптировано отсюда .
источник
smtplib
поддерживает. Чтобы отправить вложения, вы кодируете их как сообщение MIME и отправляете их в виде обычного электронного письма. Тем не менее, есть новый почтовый модуль Python: docs.python.org/library/email.mime.htmlmsg.as_string()
и он, безусловно, выглядит как тело многочастной электронной почты MIME. Википедия объясняет MIME: en.wikipedia.org/wiki/MIMELine 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
Другой способ с питоном 3 (если кто-то ищет):
Убедитесь, что в вашей учетной записи Gmail разрешены « менее безопасные приложения »
источник
Версия Gmail, работающая с Python 3.6 (обратите внимание, что вам нужно будет изменить настройки Gmail, чтобы иметь возможность отправлять с него электронную почту через smtp:
Использование:
Чтобы использовать его с любым другим почтовым провайдером, просто измените настройки SMTP.
источник
Простейший код, который я смог получить:
Это было основано на официальной документации Django
источник
Другие ответы превосходны, хотя я все еще хотел поделиться другим подходом на случай, если кто-то ищет альтернативы.
Основное отличие здесь заключается в том, что используя этот подход, вы можете использовать HTML / CSS для форматирования вашего сообщения, чтобы вы могли проявить творческий подход и придать стиль своей электронной почте. Хотя вы не обязаны использовать HTML, вы также можете использовать только простой текст.
Обратите внимание, что эта функция принимает отправку электронной почты нескольким получателям, а также позволяет прикреплять несколько файлов.
Я только пробовал это на Python 2, но я думаю, что он должен работать на 3, а также:
Надеюсь, это поможет! :-)
источник
Для объяснения вы можете использовать эту ссылку, которую он объясняет должным образом https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment-using-smtp-7852e77623
источник
источник
Ниже приведена комбинация того, что я нашел в посте SoccerPlayer Здесь и следующей ссылки, которая облегчила мне прикрепление файла xlsx. Нашел здесь
источник
С моим кодом вы можете отправлять вложения электронной почты, используя gmail, вам необходимо:
установите свой адрес электронной почты на « ВАШ SMTP E-mail ЗДЕСЬ »
установите пароль своей учетной записи Gmail на " ВАШ SMTP ПАРОЛЬ ЗДЕСЬ_ "
В части ___EMAIL TO RECEIVE THE MESSAGE_ вам необходимо указать адрес электронной почты получателя.
Тревожное уведомление является темой,
Кто-то вошел в комнату, изображение прикреплено к телу
["/home/pi/webcam.jpg"] является вложением изображения.
источник
Вы также можете указать тип вложения, который вы хотите в вашей электронной почте, в качестве примера я использовал pdf:
вдохновение / кредиты: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
источник