Загрузка файлов на Яндекс диск и рассылка по email Python

Тема в разделе "Perl, Python, Ruby", создана пользователем judex, 7 сен 2018.

  1. judex

    judex

    Регистр.:
    23 дек 2006
    Сообщения:
    242
    Симпатии:
    72
    Всем привет!
    Помогите пожалуйста решить проблему.
    Решил сделать не большой скрипт на python, который загружает файлы из директории и делает рассылку по почте.
    Загрузку файлов я сделал без проблем и отправку по почте сделать не проблема, загвоздка встала в том, чтобы после загрузки файлов в директорию на яндекс диске получить публичную ссылку.
    #если в коде есть ошибки поправьте :) только начинаю изучать этот язык.
    Сам код:
    Код:
    # -*- coding: utf-8 -*-
    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    import sys
    import os
    import yadisk
    import posixpath
    from tkinter.filedialog import askdirectory
    from tkinter import *
    
    
    root = Tk()
    root.update()
    root.folder = askdirectory(initialdir = "/",title = "Выбор Папки")
    root.destroy()
    root.mainloop()
    
    #Архивация
    
    #/Архивация
    
    def recursive_upload(y, from_dir, to_dir):
         for root, dirs, files in os.walk(from_dir):
             p = root.split(from_dir)[1].strip(os.path.sep)
             dir_path = posixpath.join(to_dir, p)
    
             try:
                 y.mkdir(dir_path)
             except yadisk.exceptions.PathExistsError:
                 pass
    
             for file in files:
                 file_path = posixpath.join(dir_path, file)
                 p_sys = p.replace("/", os.path.sep)
                 in_path = os.path.join(from_dir, p_sys, file)
                 try:
                     y.upload(in_path, file_path)
                 except yadisk.exceptions.PathExistsError:
                     pass
    
    y = yadisk.YaDisk(token="ТОКЕН")
    print(y.check_token())
    #root.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select file")
    to_dir = "/backup/test/"
    from_dir = (root.folder)
    print(u"Загрузка началась")
    recursive_upload(y, from_dir, to_dir)
    print(u"Загрузка закончилась")
    
    '''
    #Рассылка писем
    toaddr = '***@gmail.com' #адреса через запятую
    me = '***@gmail.com'
    you = 'To: ' + toaddr
    server = 'smtp.gmail.com' # Сервер
    port = 465 # Порты
    user_name = '***@gmail.com' # Отправитель
    user_passwd = '******' # Пароль отправителя
    # Формируем заголовок письма
    msg = MIMEMultipart('mixed')
    msg['Subject'] = u'Заголовок письма'
    msg['From'] = me
    msg['To'] = toaddr
    # Формируем письмо
    part = MIMEText(u'Содержимое письма', 'Plain email')
    msg.attach(part)
    # Подключение
    s = smtplib.SMTP(server, port)
    s.ehlo()
    s.starttls()
    s.ehlo()
    # Авторизация
    s.login(user_name, user_passwd)
    # Отправка письма
    s.sendmail(me, toaddr, msg.as_string())
    s.quit()
    '''