اذهب إلى المحتوى
  • 0

كيف يمكنني حل مشكلة ظهور اللغة العربية بشكل غير صحيح عند إرسال رسائل البريد الإلكتروني باستخدام Node.js و Nodemailer؟

منتصر احمد

السؤال

دلوقتي انا بحاول ابعت ايميل بnodejs + nodemailer بس باللغة العربية فبيطلعلي كدهimage.thumb.png.f84b8d712a574b4a314b55e0f65c4dde.png

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يحدث ذلك بسبب عدم دعم ترميز utf8 الذي تندرج تحت رموز الأحرف العربية،

جرب القيام بتعيين خاصية charset لـ nodemailer لتصبح utf-8: 

const mailOptions = {
  from: 'your-email@example.com',
  to: 'recipient@example.com',
  subject: 'عنوان البريد الإلكتروني',
  text: 'نص البريد الإلكتروني',
  charset: 'utf-8' // تعيين ترميز النص إلى UTF-8
};

أيضا قد يكون من العملي تحديد نوع المحتوى عن طريق الخاصية conentType: 

const mailOptions = {
  from: 'your-email@example.com',
  to: 'recipient@example.com',
  subject: 'عنوان البريد الإلكتروني',
  html: '<p>نص البريد الإلكتروني</p>',
  contentType: 'text/html; charset=utf-8' // تعيين Content-Type وترميز النص
};

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يجب تعيين خاصية charset، حيث أن خاصية charset في Nodemailer تُستخدم لتعيين ترميز الحروف للنصوص الموجودة في البريد الإلكتروني لتعيين ترميز الحروف بشكل صحيح مهم لضمان عرض النصوص بشكل صحيح في البريد الإلكتروني، والسبب هو أن ترميز UTF-8 يدعم العديد من اللغات، بما في ذلك العربية.

ونستخدم تلك الخاصية في كائن options كالتالي:

const nodemailer = require("nodemailer");

const mailOptions = {
  from: "sender@example.com",
  to: "recipient@example.com",
  subject: "This is an email with Arabic text",
  text: "هذا هو نص بريد إلكتروني باللغة العربية",
  charset: "utf-8"
};

nodemailer.sendMail(mailOptions, (error, success) => {
  if (error) {
    console.log(error);
  } else {
    console.log("Email sent successfully!");
  }
});

وقد يفيدك تحديد خاصية encoding  إلى utf-8 مع أنك لست بحاجة إلى ذلك فهى محددة إفتراضيًا إلى utf-8.

وتستطيع تفقد جميع الخصائص من خلال المستند الرسمي:

وإذا استمرت المشكلة فحاول تجربة استخدام مكتبات أخرى بدلاً من Nodemailer ومنها:

  1. SendGrid
  2. Mailgun
  3. SMTP.js
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...