AWS Simple Email Service (SES) は、トランザクションメッセージ、マーケティングキャンペーン、自動通知など、メールを安全に送信できる強力でコスト効率の高いソリューションです。
このブログ投稿では、AWS SES を使用して E メールを送信する方法を検討し、HTML テンプレート、添付ファイル、さらにはカレンダーイベントの送信など、さまざまなユースケースを取り上げます。すぐに始められるよう、実践的な例を見ていきます。
AWS Simple Email Service (SES) は、デジタルマーケターやアプリケーション開発者がマーケティング、通知、トランザクションに関する電子メールを送信できるように設計されたクラウドベースの電子メール送信サービスです。これは、あらゆる規模の企業にとって、信頼性が高く、スケーラブルで、コスト効率の高いサービスです。
主な機能:
メールの送信に入る前に、アカウントに AWS SES を設定しましょう。
AWS SES では、使用する予定の E メールアドレスまたはドメインを確認する必要があります。
デフォルトでは、新しい AWS アカウントは サンドボックス 環境にあり、メール送信機能が制限されます。
プログラムで SES と対話するには、AWS アクセス キーが必要です。
AWS SDK for 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); } });
説明:
次に、HTML コンテンツを含む電子メールを送信して、視覚的にさらに魅力的なものにしてみましょう。
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); } });
ヒント:
添付ファイル付きの電子メールを送信するには、sendEmail の代わりに sendRawEmail メソッドを使用します。
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); } });
説明:
カレンダー イベントを送信するには、.ics ファイルを添付ファイルとして含めます。
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); } });
説明:
AWS SES は、さまざまなメール送信ニーズに対応できる多用途のサービスです。単純な通知、リッチ HTML コンテンツを含むマーケティングメール、または添付ファイルやカレンダーイベントを含む複雑なメッセージを送信する場合でも、AWS SES が対応します。
このガイドに従うことで、次の方法をしっかりと理解できるようになります。
読んでいただきありがとうございます!ご質問や共有したいヒントがございましたら、お気軽に以下にコメントを残してください。コーディングを楽しんでください!
以上がAWS SES を使用した電子メールの送信: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。