كيف تنشئ رابط mailto مع الموضوع والنص وCC وBCC
ابنِ رابط mailto يعمل: الصيغة الدقيقة، والترميز بالنسبة المئوية للمسافات وفواصل الأسطر، وعدّة مستلمين، وأمثلة HTML وحلول للمشكلات الشائعة.

رابط mailto هو mailto:address?subject=...&body=.... افصل المستلمين المتعددين بـفواصل، وأضف cc= وbcc= كمعاملات، ورمّز بالنسبة المئوية كل قيمة: يقول RFC 6068 إن المسافات ينبغي أن تكون %20، وإن فواصل الأسطر في النص يجب أن تكون %0D%0A، وإن & و= و? يجب تهريبها. وداخل HTML اكتب علامات & هكذا &.
يفتح رابط mailto: تطبيق بريد الزائر برسالة معنونة مسبقًا، وبموضوع ونص مملوءين اختياريًا. هو أبسط آلية «اتصل بنا» على الويب، لكن تفاصيل الترميز تُربك كثيرًا من المطوّرين. يعطيك هذا الدليل الصيغة الدقيقة من المعيار وأمثلة مجرَّبة وقائمة لاستكشاف الأخطاء.
الصيغة الأساسية
mailto:name@example.com
mailto:name@example.com?subject=Hello
mailto:name@example.com?subject=Hello&body=Nice%20to%20meet%20you
تعرّف المخطّط RFC 6068. كل ما بعد ? قائمة معاملات name=value (يسمّيها المعيار حقول الرأس) تفصل بينها &. ويمكن أن يحوي جزء العنوان عدة عناوين مفصولة بفواصل.
كل الحقول التي يمكنك ضبطها
| الحقل | كيف تكتبه | مثال |
|---|---|---|
| إلى (To) | العنوان أو العناوين بعد mailto:، مفصولة بفواصل | mailto:a@example.com,b@example.com |
| نسخة (CC) | معامل cc= | ?cc=manager@example.com |
| نسخة مخفية (BCC) | معامل bcc= | ?bcc=archive@example.com |
| الموضوع | subject=، مرمَّزًا بالنسبة المئوية | ?subject=Order%20question |
| النص | body=، مرمَّزًا بالنسبة المئوية | ?body=Hi%20team%2C |
| ربط المحادثة | in-reply-to= (نادرًا ما يلزم) | ?in-reply-to=%3Cmessage-id%40example.com%3E |
يسمح RFC 6068 أيضًا بمعامل to داخل الاستعلام، لكنه يعدّ هذه الصيغة غير موصى بها (NOT RECOMMENDED) لأن عملاء المستخدم يعالجونها بشكل مختلف، ويقول إن التنفيذ يجب ألا ينتج رأسَي To:. ضع كل المستلمين في جزء العنوان.
الترميز بالنسبة المئوية: الجزء الذي يكسر الروابط
لا تستطيع عناوين URL أن تحوي مسافات خامًا ولا أحرفًا محجوزة، فيجب ترميز القيم بالنسبة المئوية. يقول المعيار إن الأحرف غير ASCII يجب ترميزها أولًا بـ UTF-8 ثم ترميز كل ثُمانية بالنسبة المئوية، وإن & و; و= يجب تهريبها حين لا تكون فواصل، وإن كل المسافات ينبغي (SHOULD) أن تُرمَّز %20:
| الحرف | رمّزه إلى | ملاحظة |
|---|---|---|
| مسافة | %20 | لا تستخدم +؛ فهي ليست مسافة في mailto |
| سطر جديد | %0D%0A | إرجاع الحامل + تغذية سطر؛ مطلوب في النص |
& | %26 | وإلا بدأت معاملًا جديدًا |
= | %3D | وإلا قسمت الاسم والقيمة |
? | %3F | وإلا قد تبدأ استعلامًا ثانيًا |
# | %23 | وإلا بدأت جزء الشظية (fragment) |
% | %25 | رمّز علامة النسبة نفسها دائمًا |
+ في عنوان | %2B | يسمح RFC بترميزها (MAY)؛ والترميز يتجنّب قراءتها مسافة |
| غير ASCII (عربي، é، إيموجي) | UTF-8 بالنسبة المئوية | مثلًا مرحبا ← %D9%85%D8%B1%D8%AD%D8%A8%D8%A7 |
لا تحاول فعل هذا يدويًا. في JavaScript تنتج encodeURIComponent() الصيغة الصحيحة للقيم أصلًا (ثم أعد @ المرمَّزة إلى أصلها إن شئت):
const subject = 'Order #1234: where is it?';
const body = 'Hi team,\n\nMy order has not arrived.';
const href = 'mailto:support@example.com'
+ '?subject=' + encodeURIComponent(subject)
+ '&body=' + encodeURIComponent(body.replace(/\n/g, '\r\n'));
// mailto:support@example.com?subject=Order%20%231234%3A%20where%20is%20it%3F&body=Hi%20team%2C%0D%0A%0D%0AMy%20order%20has%20not%20arrived.
أمثلة كاملة
موضوع ونص مع فاصل سطر
<a href="mailto:support@example.com?subject=Order%20%231234&body=Hi%20team%2C%0D%0A%0D%0AMy%20order%20has%20not%20arrived.">
Email support
</a>
عدة مستلمين وCC وBCC
mailto:sales@example.com,partners@example.com?cc=manager@example.com&bcc=crm@example.com&subject=Partnership%20enquiry
في HTML، هرّب علامات &
داخل سمة HTML اكتب & بين المعاملات. يفكّها المتصفح إلى & قبل بناء عنوان URL. يُنتج المولّد أعلاه مقطع HTML مهرَّبًا جاهزًا.
لماذا لا يعمل رابط mailto (وماذا تفعل)
| العَرَض | السبب | الحل |
|---|---|---|
| لا يحدث شيء عند النقر | لا يوجد تطبيق بريد افتراضي لدى الزائر (شائع في متصفحات سطح المكتب مع البريد عبر الويب) | اعرض العنوان نصًّا بجوار الرابط، أو استخدم نموذج اتصال |
| الموضوع أو النص مقتطع | بعض العملاء والمتصفحات تقتطع العناوين الطويلة جدًا | أبقِ الرابط كله دون نحو 2,000 حرف |
| تُتجاهل فواصل الأسطر | استخدمت سطرًا جديدًا حرفيًا أو <br> | استخدم %0D%0A |
| أحرف غريبة | لم تُرمَّز القيمة بـ UTF-8 بالنسبة المئوية | رمّز القيمة بـ encodeURIComponent |
| يختفي المعامل الثاني | & خام داخل قيمة، أو & غير مهرَّبة في HTML | رمّز & إلى %26 في القيم |
| لا يظهر تنسيق HTML | النص نص عادي فقط | لا تضع HTML في body |
| المرفق مفقود | مخطّط mailto لا يدعم المرفقات | اربط بتنزيل بدلًا من ذلك |
أنماط عملية
| حالة الاستخدام | النمط | نصيحة |
|---|---|---|
| طلب دعم مع سياق الطلب | ?subject=Order%20%231234&body=Order%20number%3A%201234%0D%0A | املأ رقم الطلب مسبقًا ليسرع الفرز |
| مشاركة صفحة بالبريد | ?subject=Interesting%20article&body=https%3A%2F%2Fexample.com%2Fpost | رمّز العنوان كاملًا داخل النص |
| استفسار مبيعات إلى صندوق مشترك | mailto:sales@example.com?subject=Pricing%20enquiry | وجّه إلى عنوان دور ليصمد أمام تغيّر الموظفين |
| ملاحظات بقالب | ?body=What%20worked%3A%0D%0AWhat%20did%20not%3A%0D%0A | اجعله سؤالين أو ثلاثة |
أبقِ النص المعبّأ مسبقًا قصيرًا ومحايدًا. المسودات الطويلة تبدو ملحّة، وأرجح للاقتطاع، وتعطي الزائر شيئًا يحذفه قبل أن يكتب كلماته.
mailto مقابل نموذج اتصال
| الحاجة | mailto | نموذج اتصال |
|---|---|---|
| يعمل بلا خادم | نعم | لا، يحتاج واجهة خلفية أو خدمة |
| يعمل إن لم يكن لدى الزائر تطبيق بريد | لا | نعم |
| التعرّض للسبام والحصاد | العنوان علني | يبقى العنوان مخفيًا |
| بيانات منظّمة (رقم الطلب، الفئة) | عبر النص المعبّأ مسبقًا فقط | حقول حقيقية وتحقّق |
| المرفقات | غير مدعومة | ممكنة |
لموقع ثابت يُعدّ رابط mailto خطوة أولى معقولة؛ وأضف نموذجًا حين يزيد الحجم أو السبام. وإن عرضت العنوان نصًّا أيضًا فتحقّق من سلامة كتابته بـ دليل صياغة عنوان البريد.
الخصوصية والأمان وإمكانية الوصول
- الحصاد: يلاحظ قسم الأمان في RFC 6068 أن عناوين mailto في الصفحات العامة تعرّض العناوين للحصاد. للصفحات الكثيرة الزيارات فكّر في نموذج.
- لا إرسال صامت: ينبغي (SHOULD NOT) ألا يرسل عميل البريد رسالة من عنوان mailto دون أن يُري المستخدم الرسالة كاملة أولًا، فالرابط يملأ ولا يرسل.
- تسرّب BCC: يحذّر الـ RFC من أن العناوين في قيمة
bccقد تتسرّب إلى آخرين في القيمة نفسها؛ استخدم عنوان BCC واحدًا. - نص الرابط: استخدم نصًّا وصفيًا مثل «راسل فريق الدعم» بدل «انقر هنا»، لإمكانية الوصول والوضوح.
قائمة الاختبار
- انقر الرابط في تطبيق بريد سطح المكتب، وفي بريد الويب المسجَّل كمعالج، وعلى هاتف.
- تأكد أن المسافات والحروف غير اللاتينية وفواصل الأسطر تظهر صحيحة في المسودة.
- تأكد أن المستلمين وCC وBCC في الحقول الصحيحة.
- افحص الطول الإجمالي للرابط وأبقِه قصيرًا.
إن كنت تجمع هذه الرسائل في صندوق فريق فأعدّ مصادقة سليمة للنطاق لتتصرف الردود والارتدادات كما يجب: انظر دليل SPF وDKIM وDMARC.
أسئلة شائعة
كيف أضيف موضوعًا ونصًا إلى رابط mailto؟
أضف ?subject=...&body=... بعد العنوان مع ترميز القيمتين بالنسبة المئوية. وفي HTML اكتب علامة & هكذا &.
كيف أضع فاصل سطر في نص mailto؟
استخدم %0D%0A لكل فاصل سطر؛ يشترط RFC 6068 هذا الترميز لفواصل الأسطر في النص. السطور الجديدة الحرفية أو وسوم <br> غير موثوقة.
كيف أرسل إلى عدة مستلمين بـ mailto؟
افصل العناوين بفواصل في الجزء الأول: mailto:a@example.com,b@example.com.
هل يمكن أن يحوي رابط mailto مرفقًا؟
لا. لا يدعم مخطّط mailto المرفقات. اربط بتنزيل بدلًا من ذلك.
هل هناك حدّ لطول روابط mailto؟
لا يضع المعيار حدًّا، لكن المتصفحات وعملاء البريد قد تقتطع الروابط الطويلة. البقاء دون نحو 2,000 حرف قاعدة آمنة.


