Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2019 18:25:50

stas.kostenkov
Зарегистрирован: 2019-03-29
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Отправка писем в 3-ем питоне

import os

import smtplib
import mimetypes
from argparse import ArgumentParser
from email import encoders
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from base64 import b64encode
from email.mime.multipart import MIMEMultipart
from datetime import datetime
from email import encoders


def email_send_body(scv_text, file_name):
# scv_text - путь+имя файла, file_name - название файла во вложении
# Параметр, передаваемый при запуске скрипта:
txtparam = “papara-para” # sys.argv
# От кого:
fromaddr = ‘from@from.from.ru
# Кому:
toaddr = ‘to@to.to.ru
# Тема письма:
subj = ‘Notification from system’
# Текст сообщения:
#msg_txt = MIMEText(scv_text) #MIMEText('Спасибо', ‘plain’, ‘utf-8’)
msg_txt = ‘Notice:\n\n ’ + txtparam + ‘\n\nBye!’ #
# Создаем письмо (заголовки и текст)
msg = “From: %s\nTo: %s\nSubject: %s\n\n%s” % (fromaddr, toaddr, subj, msg_txt)
fname = file_name
outer = MIMEMultipart()
fp = open(scv_text, ‘rb’)
msg = MIMEBase(“application”, “octet-stream”)
#msg.set_payload(str(b64encode(fp.read()), ‘ASCII’))
msg.set_payload(fp.read())
encoders.encode_base64(msg)
msg.add_header('Content-Disposition', ‘attachment’, filename=fname)
fp.close()
outer.attach(msg)
composed = outer.as_string()

# Логин gmail аккаунта. Пишем только имя ящика.
# Например, если почтовый ящик someaccount@gmail.com, пишем:
username = ‘xxxxx@gmail.com
# Соответственно, пароль от ящика:
password = ‘xxxxxxxxxx’
# Инициализируем соединение с сервером gmail по протоколу smtp.
server = smtplib.SMTP('smtp.gmail.com:587')
# Выводим на консоль лог работы с сервером (для отладки)
server.set_debuglevel(1);
# Переводим соединение в защищенный режим (Transport Layer Security)
server.starttls()
# Проводим авторизацию:
server.login(username, password)
# Отправляем письмо:
server.sendmail(fromaddr, toaddr, composed)
# Закрываем соединение с сервером
server.quit()
print(“super”)

dir = os.path.abspath(os.curdir)
# отправляемый файл proba1.xlsx лежит в директории скрипта

if __name__ == “__main__”:
email_send_body(dir + ‘\\proba1.xlsx’, ‘proba1.xlsx’)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version