AWS Simple Email Service(SES)? ?? ???, ??? ???, ?? ?? ? ???? ???? ??? ? ??? ?? ???? ?? ???? ??????.
? ??? ?????? AWS SES? ???? ???? ??? ??? ???? HTML ???, ?? ??, ??? ??? ??? ?? ??? ?? ??? ????. ??? ???? ? ??? ?? ?? ??? ???????.
??
- AWS SES? ??????
- AWS SES ??
- ??? ??? ???
- HTML ??? ???
- ????? ??? ??? ???
- ??? ??? ???
- ?? ??
- ??
AWS SES? ??????
AWS Simple Email Service(SES)? ??? ??? ???? ?????? ???? ???, ?? ? ?? ???? ?? ? ??? ??? ???? ?? ??? ?? ??????. ?? ??? ??? ?? ????? ?? ???? ?? ???? ??????.
?? ??:
- ???: ??? ???? ??? ?????.
- ?? ???: AWS? ???? ?? ?? ?? ???? ????.
- ?? ???: ??? ?? ??.
- ??: DKIM ? SPF? ?? ?? ????? ?????.
AWS SES ??
??? ???? ?? ??? AWS SES? ??? ?????.
1??: ??? ?? ?? ??? ??
AWS SES??? ????? ??? ??? ???? ???? ???.
- ??? ?? ??:
- AWS SES ??? ?????.
- ID ???? ??? ??? ?????.
- ? ??? ?? ??? ?????.
- ??? ??? ???? ? ??? ?? ??? ?????.
- ?? ???? ???? AWS?? ?? ???? ?? ?? ??? ?????.
- ??? ??:
- ID ???? ????? ?????.
- ? ??? ??? ?????.
- ??? ??? ?????.
- AWS? DNS ???? ?????. ???? DNS ??? ?? ?????.
2??: ???? ??? ??
????? ? AWS ??? ???? ??? ???? ??? ?? ??? ?????.
- SES ???? ???? ?????.
- ???? ?? ??? ?????.
- ???? ??? ????? ?? ??? ?????.
3??: AWS ?? ?? ??
SES? ????? ???? ?? ????? AWS ??? ?? ?????.
- AWS IAM ??? ?????.
- ????? ?? ???? ???? ? ???? ????.
- AmazonSESFullAccess ??? ?????.
- ??? ? ID? ?? ??? ?? ?????.
??? ??? ???
Node.js? AWS SDK? ???? ??? ?? ??? ???? ??? ??? ??? ?????.
????
- ???? Node.js? ???? ????.
- Node.js? AWS SDK(aws-sdk)? ???????.
?? ?
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 ??? ???
?? 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); } });
?:
- CSS ???? ????? ????? ?? ???? ???? ??? ????? ? ???? ??? ? ????.
- ??? ?? ?? ??? ??? ?????.
?? ??? ??? ??? ???
?? ??? ??? ???? ???? 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); } });
??:
- ?? MIME ???: ?? ??? ???? ?? MIME ??? ?? ?? ???? ?????.
- Base64 ???: ?? ??? base64? ?????? ???.
- ??? ??: ??? ?????? ?? ??? ???? ????? ??? ??? ?????.
??? ?? ???
??? ???? ??? ?? .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); } });
??:
- ??? ??? ??: iCalendar ??? ???? .ics ?? ???? ????.
- Method=REQUEST: ?? ???? ?????.
- ??? ??: ??? ??? ??? ??? ?? ? ??? ??? ?????.
?? ??
- ?? ??: ?? ??????? ??? ?? ?? ??? ?????.
- ??? ??: ??? ?? ??? ??? ???? ?????.
- ??: ??? ????? SES ?? ??? ?????.
- ?? ?? ??: ??? ???? ?? ??? ???? ?? ?? ??? ?????.
- ????: AWS CloudWatch? ???? ??? ?? ??? ???????.
- ??: AWS ?? ??? ???? ??? ?? IAM ??? ?????.
??
AWS SES? ??? ??? ?? ?? ??? ??? ? ?? ??? ??????. ??? ??? ???, ??? HTML ???? ??? ??? ???? ???, ?? ??? ?? ???? ??? ??? ???? ???, AWS SES? ?? ?? ??? ????.
? ???? ??? ?? ?? ??? ???? ???? ? ????.
- ??? AWS SES? ?????.
- ?? ??? ? HTML ???? ????.
- ???? ????? ??? ???? ?????.
????? ?????! ???? ???? ?? ?? ??? ??? ??? ?????. ??? ?????!
? ??? AWS SES? ?? ??? ??: ?? ???? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

JavaScript? ??? ?? ????? ??? ?? ??? ??? ?? ?? ?? ????? ?? ???? ???? ?????. ??? ?? ???? ?? ??? ?? ??? ???? ???? ?? ?? ???? ???? ?????. ?? ??, ??? ? ?? ???? ??? (? : ??? null? ??) ?? ??? ????? ??????. ??? ??? ???? ??? ??? ????. closure?? ?? ??? ?? ??; ? ??? ??? ?? ?? ???? ?? ???? ????. V8 ??? ?? ???, ?? ??, ??/?? ???? ?? ??? ?? ??? ??? ????? ?? ??? ?? ??? ????. ?? ?? ???? ??? ??? ??? ??? ???? ????? ?? ?? ???? ?? ???????.

Node.js?? HTTP ??? ???? ? ?? ???? ??? ????. 1. ?? ????? ????? ??? ??? ? ?? ????? ?? ?? ? https.get () ??? ?? ??? ??? ? ?? ????? ?? ??? ?????. 2.axios? ??? ???? ? ?? ??????. ??? ??? ??? ??? ??? ??? ???/???, ?? JSON ??, ???? ?? ?????. ??? ?? ??? ????? ?? ????. 3. ?? ??? ??? ??? ??? ???? ???? ??? ??? ???? ?????.

JavaScript ??? ??? ?? ?? ? ?? ???? ????. ?? ???? ???, ??, ??, ?, ???? ?? ? ??? ?????. ?? ????? ?? ?? ? ? ??? ????? ?? ??? ??? ????. ??, ?? ? ??? ?? ?? ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ????. ?? ? ????? ??? ???? ? ??? ? ??? TypeofNull? ??? ?????? ??? ? ????. ? ? ?? ??? ???? ?????? ????? ???? ??? ???? ? ??? ? ? ????.

?????, JavaScript ???! ?? ? JavaScript ??? ?? ?? ?????! ?? ?? ??? ??? ??? ? ????. Deno?? Oracle? ?? ??, ??? JavaScript ?? ??? ????, Google Chrome ???? ? ??? ??? ???? ?????. ?????! Deno Oracle? "JavaScript"??? ????? Oracle? ?? ??? ??? ??????. Node.js? Deno? ??? ? Ryan Dahl? ??? ?????? ???? ????? JavaScript? ??? ???? Oracle? ????? ???? ?????.

?? JavaScript ??? ??? ??? ?????? ?? ??? ?? ?? ??? ?? ???? ????. 1. ??? ???? ???? ?? ??? ?? ? ? ???? ??? ??? ?? ? ?? ????? ?????. 2. Angular? ?????? ??? ?? ???? ? ?? ?? ??? ??? ??? ???? ?????. 3. VUE? ???? ?? ??? ???? ?? ?? ??? ?????. ?? ?? ?? ??, ? ??, ???? ???? ? SSR? ???? ??? ??? ??? ???? ? ??? ?????. ???, ??? ??? ??? ????? ????. ??? ??? ??? ??? ?? ????.

iife (?? invokedfunctionexpression)? ?? ??? ???? ?? ????? ??? ???? ?? ??? ????? ?? ??? ? ?????. ??? ?? ?? ??? ???? ? ?? ??? ??? ?? (function () {/code/}) ();. ?? ???? ??? ?????. 1. ?? ??? ??? ?? ???? ?? ??? ??? ?????. 2. ?? ??? ??? ???? ?? ?? ??? ????. 3. ?? ?? ??? ????? ?? ???? ???????? ?? ? ??. ???? ?? ???? ?? ??? ES6 ??? ??? ??? ?? ? ??? ????? ??? ? ???? ???????.

??? JavaScript?? ??? ??? ?????? ?? ???????. ?? ??, ?? ?? ? ??? ??? ?? ????? ????? ?????. 1. ?? ??? ??? ????? ???? ??. ()? ?? ??? ??? ?????. ?. ()? ?? ??? ?? ??? ??? ?? ? ? ????. 2. ?? ??? .catch ()? ???? ?? ??? ??? ?? ??? ??????, ??? ???? ???? ????? ??? ? ????. 3. Promise.all ()? ?? ????? (?? ?? ?? ? ??????? ??), Promise.Race () (? ?? ??? ?? ?) ? Promise.AllSettled () (?? ??? ???? ??)

Cacheapi? ?????? ?? ???? ??? ???? ???, ?? ??? ??? ?? ???? ? ??? ?? ? ???? ??? ??????. 1. ???? ????, ??? ??, ?? ?? ?? ???? ???? ??? ? ????. 2. ??? ?? ?? ??? ?? ? ? ????. 3. ?? ?? ?? ?? ?? ??? ??? ?? ?????. 4. ??? ???? ?? ?? ???? ?? ?? ?? ?? ?? ???? ?? ?? ??? ??? ? ????. 5. ?? ???? ??, ??? ??? ? ??? ??, ?? ??? ? ?? ???? ???? ???? ? ?? ?????. 6.?? ??? ?? ?? ?? ??, ???? ?? ? HTTP ?? ????? ?????? ???????.
