Maison >interface Web >js tutoriel >Envoi d'e-mails avec AWS SES : un guide complet
AWS Simple Email Service (SES) est une solution puissante et rentable qui peut vous aider à envoyer des e-mails en toute sécurité, qu'il s'agisse de messages transactionnels, de campagnes marketing ou de notifications automatisées.
Dans cet article de blog, nous explorerons comment utiliser AWS SES pour envoyer des e-mails, couvrant divers cas d'utilisation tels que l'envoi de modèles HTML, de pièces jointes et même d'événements de calendrier. Nous passerons en revue des exemples pratiques pour vous aider à démarrer rapidement.
AWS Simple Email Service (SES) est un service d'envoi d'e-mails basé sur le cloud conçu pour aider les spécialistes du marketing numérique et les développeurs d'applications à envoyer des e-mails de marketing, de notification et transactionnels. Il s'agit d'un service fiable, évolutif et rentable pour les entreprises de toutes tailles.
Caractéristiques principales :
Avant de nous lancer dans l'envoi d'e-mails, configurons AWS SES pour votre compte.
AWS SES vous demande de vérifier les adresses e-mail ou les domaines que vous prévoyez d'utiliser.
Par défaut, les nouveaux comptes AWS se trouvent dans l'environnement Sandbox, ce qui limite les capacités d'envoi d'e-mails.
Vous aurez besoin des clés d'accès AWS pour interagir avec SES par programmation.
Commençons par envoyer un simple e-mail en texte brut à l'aide du SDK AWS pour Node.js.
const AWS = require('aws-sdk'); // Configure AWS SDK AWS.config.update({ accessKeyId: 'YOUR_ACCESS_KEY_ID', secretAccessKey: 'YOUR_SECRET_ACCESS_KEY', region: 'us-east-1', // Replace with your SES region }); const ses = new AWS.SES(); const params = { Source: 'sender@example.com', Destination: { ToAddresses: ['recipient@example.com'], }, Message: { Subject: { Data: 'Test Email from AWS SES', }, Body: { Text: { Data: 'Hello, this is a test email sent using AWS SES!', }, }, }, }; ses.sendEmail(params, (err, data) => { if (err) { console.error('Error sending email', err); } else { console.log('Email sent successfully', data); } });
Explication :
Maintenant, envoyons un e-mail avec du contenu HTML pour le rendre plus attrayant visuellement.
const params = { Source: 'sender@example.com', Destination: { ToAddresses: ['recipient@example.com'], }, Message: { Subject: { Data: 'Welcome to Our Service!', }, Body: { Html: { Data: ` <html> <body> <h1>Welcome!</h1> <p>We're glad to have you on board.</p> </body> </html> `, }, }, }, }; ses.sendEmail(params, (err, data) => { if (err) { console.error('Error sending HTML email', err); } else { console.log('HTML email sent successfully', data); } });
Conseils :
Pour envoyer des e-mails avec pièces jointes, nous utiliserons la méthode sendRawEmail au lieu de sendEmail.
const fs = require('fs'); const path = require('path'); const AWS = require('aws-sdk'); const ses = new AWS.SES(); // Read the attachment file const filePath = path.join(__dirname, 'attachment.pdf'); const fileContent = fs.readFileSync(filePath); // Define the email parameters const params = { RawMessage: { Data: createRawEmail(), }, }; function createRawEmail() { const boundary = '----=_Part_0_123456789.123456789'; let rawEmail = [ `From: sender@example.com`, `To: recipient@example.com`, `Subject: Email with Attachment`, `MIME-Version: 1.0`, `Content-Type: multipart/mixed; boundary="${boundary}"`, ``, `--${boundary}`, `Content-Type: text/plain; charset=UTF-8`, `Content-Transfer-Encoding: 7bit`, ``, `Hello, please find the attached document.`, `--${boundary}`, `Content-Type: application/pdf; name="attachment.pdf"`, `Content-Description: attachment.pdf`, `Content-Disposition: attachment; filename="attachment.pdf";`, `Content-Transfer-Encoding: base64`, ``, fileContent.toString('base64'), `--${boundary}--`, ].join('\n'); return rawEmail; } ses.sendRawEmail(params, (err, data) => { if (err) { console.error('Error sending email with attachment', err); } else { console.log('Email with attachment sent successfully', data); } });
Explication :
Pour envoyer un événement de calendrier, nous inclurons un fichier .ics en pièce jointe.
function createCalendarEvent() { const event = [ 'BEGIN:VCALENDAR', 'VERSION:2.0', 'BEGIN:VEVENT', 'DTSTAMP:20231016T090000Z', 'DTSTART:20231020T100000Z', 'DTEND:20231020T110000Z', 'SUMMARY:Meeting Invitation', 'DESCRIPTION:Discuss project updates', 'LOCATION:Conference Room', 'END:VEVENT', 'END:VCALENDAR', ].join('\n'); return Buffer.from(event).toString('base64'); } function createRawEmail() { const boundary = '----=_Part_0_123456789.123456789'; let rawEmail = [ `From: sender@example.com`, `To: recipient@example.com`, `Subject: Meeting Invitation`, `MIME-Version: 1.0`, `Content-Type: multipart/mixed; boundary="${boundary}"`, ``, `--${boundary}`, `Content-Type: text/plain; charset=UTF-8`, `Content-Transfer-Encoding: 7bit`, ``, `Hello, you're invited to a meeting.`, `--${boundary}`, `Content-Type: text/calendar; method=REQUEST; name="invite.ics"`, `Content-Transfer-Encoding: base64`, `Content-Disposition: attachment; filename="invite.ics"`, ``, createCalendarEvent(), `--${boundary}--`, ].join('\n'); return rawEmail; } ses.sendRawEmail(params, (err, data) => { if (err) { console.error('Error sending calendar invite', err); } else { console.log('Calendar invite sent successfully', data); } });
Explication :
AWS SES est un service polyvalent qui peut répondre à une variété de besoins d'envoi d'e-mails. Que vous envoyiez de simples notifications, des e-mails marketing avec un contenu HTML riche ou des messages complexes avec des pièces jointes et des événements de calendrier, AWS SES a ce qu'il vous faut.
En suivant ce guide, vous devriez maintenant avoir une solide compréhension de comment :
Merci d'avoir lu ! Si vous avez des questions ou des conseils à partager, n'hésitez pas à laisser un commentaire ci-dessous. Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!