Script simples para receber imagens do seu DVR no Telegram.

Para criar seu bot no Telegram siga os passos do link.

Obs: Corrigido problema em que a imagem era apagada antes de ser enviada.

var fs = require('fs');
const https = require('https');
const {SMTPServer} = require('smtp-server');
const parser = require("mailparser").simpleParser
const { Telegraf } = require('telegraf')

const BOT_TOKEN = 'SEU TOKEN';
const chatId = 'SEU TELEGRAM CHAT ID'; //id do canal

const app = new Telegraf(BOT_TOKEN);

console.log('Sistema Iniciado!')
app.telegram.sendMessage(chatId, 'BOT INICIADO!');

const server = new SMTPServer({
    disabledCommands: ['STARTTLS'],
    authMethods: ['PLAIN', 'LOGIN', 'CRAM-MD5'],
    logger: false,
    onAuth(auth, session, callback) {
        let username = 'santiago';
        let password = 'santiago';

        if (
            auth.username === username &&
            (auth.method === 'CRAM-MD5'
                ? auth.validatePassword(password) 
                : auth.password === password)
        ) {
            return callback(null, {
                user: 'userdata'
            });
        }

        return callback(new Error('Falha ao autenticar'));
    },
    onData(stream, session, callback){
        parser(stream, {}, (err, parsed) => {
            function myFunction(item) {
                fs.writeFile('img/'+item.filename, item.content, (err) => {
                    if (err)
                        console.log(err);
                    else {
                        console.log("Arquivo "+item.filename+" salvo\n");
                        //console.log("Erro ao salvar imagem");
						app.telegram.sendPhoto(chatId, { source: 'img/'+item.filename }).then(function(data){
								console.log(data);
								fs.unlink('img/'+item.filename, (err) => {
									if (err) {
										console.error(err)
										return
									}
								  //file removed
								})
						});
						
                    }
                });
                //app.telegram.sendPhoto(chatId, { source: 'img/'+item.filename })
				
            }
            if (err)
                console.log("Error:" , err)
            //console.log(parsed)
            console.log(parsed)
            //let img = encodeURI(parsed.attachments);
            let fix = encodeURI(parsed.text);
            if(parsed.attachments.length > 0){
                parsed.attachments.forEach(myFunction)
                let envia = app.telegram.sendMessage(chatId, parsed.text);
				console.log(envia);
            }else{
                let envia = app.telegram.sendMessage(chatId, parsed.text);
				console.log(envia);
			}	

            console.log('DEBUG::: '+parsed.subject)
            stream.on("end", callback)
        })
        stream.pipe(process.stdout); // print message to console
        stream.on('end', callback);
    },
});
server.listen(587, 'SEUIP');