2017-10-04 14 views
0

J'appelle le code suivant (avec les adresses électroniques et les mots de passe réels) dans ma fonction AWS Lambda. Malheureusement, je ne parviens pas à afficher les journaux (mon compte n'a actuellement pas les autorisations). Existe-t-il des autorisations spécifiques que je dois configurer pour envoyer un e-mail à partir d'une fonction lambda? Ou y a-t-il une autre/meilleure façon d'envoyer et d'envoyer un courriel?Comment envoyer un courrier électronique avec nodemailer sur AWS Lambda

var transporter = nodemailer.createTransport({ 
    service: 'gmail', 
    auth: { 
     user: '[email protected]', 
     pass: 'paswword' 
    } 
    }); 

    var mailOptions = { 
    from: '[email protected]', 
    to: '[email protected]', 
    subject: 'Sending Email using Node.js', 
    text: 'That was easy!' 
    }; 

    transporter.sendMail(mailOptions, function(error, info){ 
    if (error) { 
     console.log(error); 
    } else { 
     console.log('Email sent: ' + info.response); 
    } 
    }); 

Répondre

0

Est-ce que cela fonctionne localement? Je commencerais par ça. Votre méthode peut ne pas fonctionner car la fonctionnalité https://www.google.com/settings/security/lesssecureapps est désactivée.

En supposant que vous utilisez l'intégration HTTP, si vous ne pouvez pas voir les journaux, je créerais un tableau et au lieu d'appeler console.log, j'ajouterais chaque journal à ce tableau. À la fin de la fonction, je répondrais simplement avec 200 contenant ces journaux. Vous pouvez également utiliser https://aws.amazon.com/ses/. C'est un service d'envoi de courrier électronique basé sur le cloud. Cela fonctionne très bien avec AWS Lambda. Afin de le faire fonctionner, vous devez ajouter ses:SendEmail autorisations et passer à travers le processus de vérification.

+0

Merci pour la réponse rapide. Avant de plonger dans Amazon SES, cela me permettra-t-il d'envoyer des emails depuis ma fonction Lambda avec un appel de méthode? –

+1

Oui, voici un exemple de comment c'est fait: https://github.com/netguru/aws-iam-manager/blob/master/src/ses.js#L118. C'est également dans l'environnement AWS Lambda. –

+0

Notez également que l'utilisation d'AWS SES peut entraîner des frais supplémentaires. https://aws.amazon.com/ses/pricing/ –