• 1401/05/18

ارسال ایمیل خبرنامه :

با سلام استاد.

 

سوال اول => من در حال ایجاد سیستم خبرنامه هستم سوالی که دارم اینه که اگر قرار باشد به ایمیل چند کاربر پیامی را بفرستیم. این کار را را باید به این صورت انجام داد که بر روی هر کاربر حلقه زد و تابع sendEmail را در هر بار فراخوانی کرد؟ ( این تابع فقط به یک ایمیل ، ایمیل می زند.) یا اینکه ماژولی وجود داره که لیستی از ایمیل ها را بگیره و همزمان به همه ی آنها ایمیل بفرستد. همچین ماژولی هست؟

 

سوال دوم => نحوه رندر کردن یک تمپلت ایمیل با دیتاهای داینامیک چگونه است؟ ماژولی برای این کار وجود دارد؟

 

ممنون میشم به سوالاتم مخصوصا سوال اول پاسخ دهید.

  • 1401/05/21
  • ساعت 00:02

سلام دوست من

جواب سوال اول :

میتونی برای سادگی کار از سرویس دهنده های ایمیل استفاده کنی که بسیار راحت هست

اما اگر خودت می خوای ایمیل بفرستی کار ساده این هست که تمامیه ایمیل ها درون آرایه در دسترس باشد و آرایه رو بدی

نمونه کد

6

const maillist = [
  'email1',
  'email2',
  'email3',
];

maillist.toString();

var msg = {
    from: "******", // sender address
    to: maillist,
    subject: "Hello ✔", // Subject line
    text: "Hello  ✔", // plaintext body
    cc: "*******"    
    //  html: "<b>Hello world ✔</b>" // html body
}

سوال دوم : 

میتونی از handlebars استفاده کنی این مقاله در موردش صحبت کرده

اگر در یوتیوب هم جستجو کنی کلی آموزش هست

 

موفق باشید


  • 1401/05/21
  • ساعت 12:16

خیلی ممنون استاد

 

برای سوال دوم روشی که قبلا سرچ گرده بودم این بود که 

 

با استافده از ماژول fs میومد و فایل html مورد نظر را میخوند و دیتاهای داینامیک را با دیتاهای موردنظر replace میکرد.

راه زیر چطوره؟

const htmlFile = fs.readFileSync(path.join(__dirname, 'index.html'))
htmlFile.replcae('ERROR_TITLE','داده ی مورد نظر')

  • 1401/05/21
  • ساعت 19:35

راهکار خوبی هست

ولی اگر قرار باشه برای کلی کاربر ایمیل ارسال بشه و برای همه بیاد بخونه نه مشکل ساز میشه چون داری از readFileSync استفاده میکنی بجاش از readFile استفاده کن چون Async هست و باید جواب بده

 


logo-enamadlogo-samandehi