2017-10-02 4 views
-1

Je dois effectuer un notification expéditeur sur un serveur Linux. L'idée est une fois par semaine que cet expéditeur fasse une requête dans JQL et, s'il renvoie quelque chose, envoie un email à une certaine liste. Je suis plutôt nouveau sur les serveurs et javascript. Je fais déjà la requête JQL, mais:Envoi automatique des notifications par e-mail avec le serveur

  1. J'ai besoin que l'expéditeur connaisse le bon moment pour le faire. Quel est le moyen le plus efficace pour déclencher l'expéditeur?
  2. Comment puis-je envoyer un e-mail dans JS d'une adresse spécifique à une liste d'e-mails?

Une esquisse:

//magic, part 1 
 

 
WaitUntilMonday(); 
 

 
var result = DoJQLQuery(); 
 

 
if (result != '') 
 
    SendNotificationEmail(from,to,message); 
 
    
 
//magic, part 2

j'ai essayé de chercher à ce sujet, mais je ne pas savoir par où commencer. J'apprécierais n'importe quelle suggestion de matériel de lecture aussi. Je vous remercie.

Répondre

0

Eh bien, vous pouvez utiliser NODEJS avec sendgrid api pour votre serveur et api email. Le client réel, vous pouvez l'accrocher à un sur un site Web ou simplement exécuter l'application nodejs. Donc, l'endroit pour commencer serait https://nodejs.org/ et http://sendgrid.com Cela répondrait certainement à vos besoins d'emailing. Voici une fonction que j'ai utilisée dépouillée de ma clé api (évidemment), l'appel à postEmail envoie effectivement le mail, le reste est une vérification. pour envoyer un courriel c'est assez facile. Bonne chance.

const SENDGRID_API_KEY = "SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 

var helper = require('sendgrid').mail; 
var sg = require('sendgrid')(SENDGRID_API_KEY); 
var emptyRequest = require('sendgrid-rest').request; 
var request = require("request"); 
    function makeEmail(whereFrom, whereTo, mysubject, mycontent){ 
     from_email = new helper.Email(whereFrom); 
     to_email = new helper.Email(whereTo); 
     subject = mysubject; 
     content = new helper.Content("text/html", mycontent); 

     mail = new helper.Mail(from_email, subject, to_email, content); 
     custom_arg = new helper.CustomArgs("OURGUID", "ourcustomarg"); 
     mail.addCustomArg(custom_arg); 
     var finished = mail.toJSON(); 


     var timer = 0; 

     function postEmail(){ 
      var requestBody = finished; 
      var requestPost = JSON.parse(JSON.stringify(emptyRequest)); 
      requestPost.method = 'POST'; 
      requestPost.path = '/v3/mail/send'; 
      requestPost.body = requestBody; 
      sg.API(requestPost, function (error, response) { 
      console.log(response.statusCode + ' STATUS') 
      console.log('MESSAGE ID = '+ response.headers['x-message-id']) 
      if(response.statusCode == '202') { 
       console.log(response.statusCode + ' EMAIL SENT TO SENDGRID AND QUED') 
          }//response if statement 
      if(response.statusCode != '202'){ 
      console.log(response.statusCode + ' Something went wrong')} 
          })//end internal api function 
      }//end api 

    postEmail(finished);//actually sending the mail 

     function getEmail(){ 
      var requestBody = finished; 
      var requestPost = JSON.parse(JSON.stringify(emptyRequest)); 
      requestPost.method = 'GET'; 
      requestPost.path = '/v3/mail/send'; 
      requestPost.body = requestBody; 
      sg.API(requestPost, function (error, response) { 
      console.log(response.statusCode + ' SUCCESSFUL EMAIL'); 
      console.log('MESSAGE ID = '+ response.headers['x-message-id']) ; 
         })//end internal api function 
      }//end api 


      function checkBounce(){ 
      console.log('this is checkBounce'); 
      var options = { method: 'GET', 
      url: 'https://api.sendgrid.com/v3/suppression/bounces/'+ whereTo, 
      headers: { authorization: 'Bearer your api key here' }, 
      body: '{}' }; 

      request(options, function (error, response, body) { 
      if (error) throw new Error(error); 
      console.log(response.statusCode); 
      console.log(body); 
      }); 
      }//check Bounce 


      function checkInvalid(){ 
      console.log('This is check invalid'); 
      var options = { method: 'GET', 
      url: 'https://api.sendgrid.com/v3/suppression/invalid_emails'+ whereTo, 
      headers: { authorization: 'Bearer your api key here' }, 
      body: '{}' }; 

      request(options, function (error, response, body) { 
      if (error) throw new Error(error); 
      console.log(response.statusCode); 
      console.log(body); 
      }); 

      }//check Invalid 

      function checkBlock(){ 
      console.log('This is check Block'); 
      var options = { method: 'GET', 
      url: 'https://api.sendgrid.com/v3/suppression/blocks'+ whereTo, 
      headers: { authorization: 'Bearer your api key here' }, 
      body: '{}' }; 

      request(options, function (error, response, body) { 
       if (error) throw new Error(error); 
       console.log(response.statusCode); 
       console.log(body.created); 
      }); 

      }//check Block 



    function checkTest(){ 
      console.log('This is check Test'); 
      var options = { method: 'GET', 
      url: 'https://api.sendgrid.com/v3/', 

      headers: { authorization: 'Bearer your api key here' }, 
      body: '{}' }; 

      request(options, function (error, response, body) { 
       if (error) throw new Error(error); 
       body = JSON.parse(body); 
       console.log(response.statusCode); 
       console.log(body); 



      });//end request 


      }//check Processed 

    }//make email end