Heim >Web-Frontend >js-Tutorial >E-Mails mit AWS SES senden: Ein umfassender Leitfaden
AWS Simple Email Service (SES) ist eine leistungsstarke, kostengünstige Lösung, die Ihnen beim sicheren Versenden von E-Mails helfen kann, sei es für Transaktionsnachrichten, Marketingkampagnen oder automatisierte Benachrichtigungen.
In diesem Blogbeitrag untersuchen wir, wie Sie AWS SES zum Senden von E-Mails verwenden, und decken dabei verschiedene Anwendungsfälle wie das Senden von HTML-Vorlagen, Anhängen und sogar Kalenderereignissen ab. Wir gehen praktische Beispiele durch, um Ihnen den schnellen Einstieg zu erleichtern.
AWS Simple Email Service (SES) ist ein cloudbasierter E-Mail-Versanddienst, der digitale Vermarkter und Anwendungsentwickler beim Versenden von Marketing-, Benachrichtigungs- und Transaktions-E-Mails unterstützen soll. Es handelt sich um einen zuverlässigen, skalierbaren und kostengünstigen Service für Unternehmen jeder Größe.
Hauptmerkmale:
Bevor wir uns mit dem Versenden von E-Mails befassen, richten wir AWS SES für Ihr Konto ein.
AWS SES erfordert, dass Sie die E-Mail-Adressen oder Domänen bestätigen, die Sie verwenden möchten.
Standardmäßig befinden sich neue AWS-Konten in der Sandbox-Umgebung, wodurch die E-Mail-Versandfunktionen eingeschränkt sind.
Sie benötigen AWS-Zugriffsschlüssel, um programmgesteuert mit SES zu interagieren.
Beginnen wir mit dem Senden einer einfachen Klartext-E-Mail mit AWS SDK für 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); } });
Erklärung:
Jetzt senden wir eine E-Mail mit HTML-Inhalt, um sie optisch ansprechender zu gestalten.
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); } });
Tipps:
Um E-Mails mit Anhängen zu senden, verwenden wir die sendRawEmail-Methode anstelle von 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); } });
Erklärung:
Um ein Kalenderereignis zu senden, fügen wir eine .ics-Datei als Anhang bei.
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); } });
Erklärung:
AWS SES ist ein vielseitiger Dienst, der eine Vielzahl von E-Mail-Versandanforderungen erfüllen kann. Egal, ob Sie einfache Benachrichtigungen, Marketing-E-Mails mit umfangreichen HTML-Inhalten oder komplexe Nachrichten mit Anhängen und Kalenderereignissen versenden, AWS SES ist für Sie da.
Wenn Sie dieser Anleitung folgen, sollten Sie nun ein solides Verständnis dafür haben, wie Sie:
Vielen Dank fürs Lesen! Wenn Sie Fragen oder Tipps zum Teilen haben, können Sie unten gerne einen Kommentar hinterlassen. Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonE-Mails mit AWS SES senden: Ein umfassender Leitfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!