Управление освещением
    Презентации
    Технические решения на LogicMachine
    Визуализация
      evika.ru    Технические решения на LogicMachine    Отправка back-up файла раз в месяц по E-mail

    Отправка back-up файла раз в месяц по E-mail

    Создаем скрипт По расписанию (Scheduled), который будет посылать back-up  файл электронной почтой каждый месяц.

    В примере используются настройки для Gmail.

    --Gmail (smtp) логин пользователя (обязательно)
    user = 'yourusername@gmail.com'
     
    --Gmail (smtp) пароль пользователя (обязательно)
    password = 'yourpassword'
     
      --E-mail и имя автора  письма
    from = ''
    alias_from = 'yourfullname'  
     
    -- E-mail и имя автора  адресата
    to = '' 
    alias_to = 'recieverfullname'   
     
    subjectpart1 = 'Back-up file' 
    subjectpart2 = 'automaticly send by LM'   
     
    image_description = 'Backup from LM'  
     
    --Сообщение которое появится внизу письма, 
    --если адресат не увидит приложенного файла  
    epilogue = 'End of message'   
     
    --***********************************************************-- 
    --******************** End of parameters ********************-- 
    --***********************************************************-- 
    --********** DON'T CHANGE ANYTHING UNDER THIS LINE **********-- 
    --***********************************************************--   
     
    --Создаем таблицу с  настройками почтового сообщения
    local settings = {     
    from = '<' .. from .. '>',
    rcpt =  '<' .. to .. '>',   
    user = user,     
    password = password,     
    server = 'smtp.gmail.com',     
    port = 465, 
    secure = 'sslv23', 
    }  
     
    --Создаем  приложенный файт (аттачмент)
    src = '/tmp/lm-backup.tar.gz' 
    dst = 'LM-' .. os.date('%Y.%m.%d') .. '.tar.gz' 
    os.execute('sh /lib/genohm-scada/web/general/backup.sh')  
     
    --Создаем  тему письма
    subject = subjectpart1 .. ": " .. dst .. " " .. subjectpart2
     
      --Загружаем необходимые библиотеки
    local smtp = require("socket.smtp") 
    local mime = require("mime") 
    local ltn12 = require("ltn12")  
     
    --Создаем e-mail header
    settings.source = smtp.message { 
    headers = {
        from = '' .. alias_from .. ' ' .. from .. '', 
    	to = '' .. alias_to .. '  ''<' .. to .. '>''', 
    	subject = subject 
    },            
     
    -- Загружаем  файл (аттачмент) в  письмо
    body = { 
    preamble = "",
      [1] = {
    headers = {          ["content-type"] = 'application/x-7z-compressed',
    ["content-disposition"] = 'attachment; filename="'..dst..'"', 
    ["content-description"] = '.. dst ..', ["content-transfer-encoding"] = "BASE64",       
    },       
      body = ltn12.source.chain(ltn12.source.file(io.open(src, "rb")),
    ltn12.filter.chain(mime.encode("base64"),       mime.wrap()   ) 
    )  
    },     
      epilogue = epilogue   
    } 
    }  
     
    --Посылаем письмо
    r, e = smtp.send(settings)
     
      --Пишем  в лог  в случае ошибки
    if (e) then   
    log (e)   
    log (r)   
    alert("Could not send email: ", e, "\n") 
    end   
     
    --Удаляем  файл backup
    os.remove(src)

    Пример создан Erwin van der Zwart из Schneider Electric




    Copyright © Evika.ru 2017
    All Rights Reserved