TW!$T3R |
29-04-2022 11:59 PM |
بوت يرسل اي بريد إلكتروني جديد إلى قناة في الدسكورد
بوت دسكورد Discord يقول بارسال اي ايميل جديد في البريد الى شنل معين انت تحدده
المشروع من سنه ونص او سنتين تقريبا ً ويمكن احد يستفيد منه نود جي اس جافا سكربت ..
المشروع فيه ملفين inbox.js + config.json
الكونفج تعدل فيه الاتي :
user
password
host
port
tls
token
channel
كود:
{
"user" : "[EMAIL_ADDRESS_FROM]",
"password" : "[EMAIL_ADDRESS_PASSWORD]",
"host" : "[EMAL_HOST (like imap.gmail.com)]",
"port" : "[EMAIL_HOST_PORT]",
"tls" : "false",
"token" : "[DISCORD_API_TOKEN]",
"channel" : "[CHANNEL_TO_SEND_TO]"
}
الكود
كود:
var Discord = require('discord.js');
var Imap = require('imap'),
inspect = require('util').inspect;
var fs = require('fs');
var config = JSON.parse(fs.readFileSync('config.json'));
var imap = new Imap({
user: config.user,
password: config.password,
host: config.host,
port: config.port,
tls: config.tls
});
const bot = new Discord.Client();
bot.login(config.token);
function openInbox(callback) {
imap.openBox('INBOX', true, callback);
}
// Send the newest message to discord
function sendNewest() {
openInbox(function(err, box) {
if (err) throw err;
var f = imap.seq.fetch(box.messages.total + ':*', {
id: 1,
bodies: ['HEADER.FIELDS (FROM, SUBJECT)', '1'],
struct: true
})
f.on('message', (message, index) => {
message.on('body', (stream, info) => {
var buffer = '', count = 0;
var prefix = '(#' + index + ') ';
stream.on('data', function(chunk) {
count += chunk.length;
buffer += chunk.toString('utf8');
console.log(prefix + 'Body [%s] (%d/%d)', inspect(info.which), count, info.size);
});
stream.once('end', function() {
var channel = bot.channels.get(config.channel); // announcments channel
channel.send(buffer);
console.log(prefix + 'Body [%s] Finished', inspect(info.which));
});
});
});
f.once('error', function(err) {
console.log('Fetch error: ' + err);
});
f.once('end', function() {
console.log('Done fetching all messages!');
// imap.end();
});
});
}
imap.once('ready', function() {
imap.on('mail', mail => {
sendNewest();
});
sendNewest();
});
imap.connect();
تحطهم والتشغيل نود او pm2 ليبقى شغال طوال الوقت .
|