استخراج البريد من نص
الصق أي نص واحصل على كل عناوين البريد الإلكتروني فيه في قائمة نظيفة: من جملة تذكر hello@example.com يخرج هذا العنوان مع عدد 1. يُدمج المكرر أو يبقى كما تختار. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Contact us at hello@example.com today.
- عناوين البريد المستخرجة
- hello@example.com
- عدد العناوين
- 1
- وضع المطابقة
- Unique
الصق أي نص عادي واحصل على كل عنوان يشبه البريد في قائمة نظيفة. اختر unique لإزالة التكرار دون تمييز حالة الأحرف مع الإبقاء على أول شكل، أو all لكل ظهور. بلا شبكة ولا فحص صندوق: استخراج محلي فقط.
عناوين فريدة أو كل التكرارات
الصق ملاحظات أو سلسلة رسائل أو نص صفحة، فتقرأ الأداة النص من اليسار إلى اليمين وتلتقط كل ما يأخذ شكل اسم@نطاق.امتداد. في الخيار الافتراضي تُحسب العناوين التي لا تختلف إلا في الأحرف الكبيرة والصغيرة مرة واحدة، مع الإبقاء على أول صيغة كُتبت وبترتيب ظهورها الأول. أما الخيار الآخر فيحتفظ بكل ظهور بأحرفه الأصلية، وهذا مفيد حين تحتاج لاحقًا إلى معرفة عدد مرات ظهور العنوان. فالجملة Contact us at hello@example.com today تعطي عنوانًا واحدًا وعددًا قدره 1.
ما لا تفعله الأداة وأين تفيد
تتعرف الأداة على العناوين من شكلها فقط. فهي لا تتصل بالشبكة، ولا تصحح العنوان ليبدو أكثر صحة، لذلك تظهر غرابة مثل نقطتين متتاليتين قبل علامة @ كما كُتبت تمامًا. وهي مناسبة لاستخراج جهات الاتصال من ملاحظات ملصوقة لبناء قائمة عملاء محتملين، أو لجمع كل الأشخاص المذكورين في تذكرة دعم طويلة، أو لتجهيز قائمة عناوين فريدة قبل استيرادها إلى جدول بيانات.
مستخرج مرن وليس مدقق RFC كامل
يمسح من اليسار إلى اليمين بنمط ASCII ثابت local@domain.tld. يلتقط العناوين كما تظهر بما في ذلك الغرائب مثل النقطتين المتتاليتين في الجزء المحلي. لا يثبت وجود الصندوق ولا يعيد كتابة السلسلة لتكون أصرم.
الأداة المجانية وواجهة البرمجة تشتركان في المستخرج نفسه.
يونيكود والبريد الدولي خارج v1
الأحرف غير ASCII في الجزء المحلي ليست في النمط، فقد ينتج محلي مختلط تطابقًا جزئيًا ASCII بدل الرمز الكامل أو الفراغ. IDN وpunycode غير مدعومين في هذا الإصدار.
حدود وأخطاء منمطة
النص مطلوب وبحد مئة ألف حرف. الاستجابة لا تعيد النص المصدر كاملًا بل emails وcount وmode فقط. يضمن ذلك اتساق النتائج بين العرض المجاني والاستدعاء عبر واجهة البرمجة.
حالات الاستخدام
CRM
اسحب العناوين من ملاحظات ملصوقة.
الدعم
اجمع جهات الاتصال من تذكرة طويلة.
تنظيف البيانات
ابنِ قائمة فريدة قبل الاستيراد.
CI
ثبّت المصفوفات المستخرجة.
الأسئلة الشائعة
هل تتحقق الأداة من وجود صندوق البريد فعلًا؟
لا. تكتفي الأداة بالعثور على المقاطع التي تأخذ شكل عنوان بريد، دون الاتصال بأي خادم بريد أو بالشبكة. ولمعرفة إن كان الصندوق موجودًا فعلًا تحتاج إلى تحقق منفصل.
هل تدعم الأداة العناوين التي فيها حروف عربية أو نطاقات دولية؟
ليس بالكامل. الحروف الخارجة عن الحروف اللاتينية الأساسية قبل علامة @ ليست جزءًا من النمط المستخدم، فقد يظهر جزء من العنوان فقط أو لا يظهر شيء. والنطاقات الدولية غير مدعومة في هذا الإصدار.
ما أقصى طول للنص الذي يمكنني لصقه؟
حتى 100,000 حرف. إذا كان النص أطول فقسّمه إلى أجزاء قبل لصقه، ولا يمكن ترك المربع فارغًا لأن الأداة تحتاج دائمًا إلى نص تفحصه.
هل تتضمن النتيجة النص الأصلي الذي لصقته؟
لا. تحتوي النتيجة فقط على العناوين التي عُثر عليها وعددها والخيار المستخدم، أما باقي ما لصقته، مثل الأسماء أو الملاحظات حول العناوين، فلا يُعاد عرضه أبدًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/text/extract-emails \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Contact us at hello@example.com today."}'const res = await fetch("https://api.kit.forhosting.com/text/extract-emails", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Contact us at hello@example.com today."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/extract-emails",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Contact us at hello@example.com today."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/extract-emails", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Contact us at hello@example.com today."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Contact us at hello@example.com today."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/extract-emails", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Contact us at hello@example.com today."
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.extract_emails",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_text_chars | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
unique مقابل all
unique يطوي التطابقات التي تختلف بالحالة فقط ويحفظ أول شكل وترتيب أول ظهور. all يبقي كل ظهور بحالته الأصلية مفيدًا لتكرار لاحق في مسار عمل.
حدود وأخطاء منمطة
الأوضاع المجهولة والنص غير النصي تعيد invalid_input.
أسئلة تقنية
هل يتحقق من الصندوق؟
لا. استخراج فقط بلا DNS/SMTP.
ما unique؟
إزالة تكرار بلا حالة مع أول شكل.
عناوين دولية؟
ليست كاملة في v1.
هل يُعاد النص كاملًا؟
لا.
الحد؟
100000 حرف.
مجاني؟
نعم في المتصفح؛ التطبيق $0.002.