واجهة برمجة تطبيقات البريد الإلكتروني (Email API)
createEmailMessage مهمل
Anchor link toينشئ رسالة بريد إلكتروني.
POST https://api.pushwoosh.com/json/1.3/createEmailMessage
معلمات جسم الطلب
Anchor link to| الاسم | النوع | مطلوب | الوصف |
|---|---|---|---|
| auth | string | نعم | رمز الوصول إلى API من لوحة تحكم Pushwoosh. |
| application | string | نعم | رمز تطبيق Pushwoosh |
| notifications | array | نعم | مصفوفة JSON تحتوي على تفاصيل رسالة البريد الإلكتروني. انظر جدول معلمات الإشعارات أدناه. |
معلمات الإشعارات
Anchor link to| الاسم | النوع | مطلوب | الوصف |
|---|---|---|---|
| send_date | string | نعم | يحدد متى يتم إرسال البريد الإلكتروني. التنسيق: YYYY-MM-DD HH:mm أو "now". |
| preset | string | نعم | رمز الإعداد المسبق للبريد الإلكتروني. انسخ من شريط URL في محرر محتوى البريد الإلكتروني في لوحة تحكم Pushwoosh. |
| subject | string أو object | لا | سطر موضوع البريد الإلكتروني. سيكون البريد الإلكتروني دائمًا بلغة المحتوى. إذا لم يحتوي subject على لغة مطابقة لـ content، فسيكون الموضوع فارغًا. |
| content | string أو object | لا | محتوى جسم البريد الإلكتروني. يمكن أن يكون سلسلة نصية لمحتوى HTML عادي أو كائنًا للإصدارات المترجمة. |
| attachments | array | لا | مرفقات البريد الإلكتروني. يتوفر مرفقان فقط. يجب ألا يتجاوز كل مرفق 1 ميغابايت (بترميز base64). |
| list_unsubscribe | string | لا | يسمح بتعيين عنوان URL مخصص لرأس “Link-Unsubscribe”. |
| campaign | string | لا | رمز الحملة لربط البريد الإلكتروني بحملة معينة. |
| ignore_user_timezone | boolean | لا | إذا كانت القيمة true، يتم إرسال البريد الإلكتروني فورًا، مع تجاهل المناطق الزمنية للمستخدم. |
| timezone | string | لا | يرسل البريد الإلكتروني وفقًا للمنطقة الزمنية للمستخدم. مثال: "America/New_York". |
| filter | string | لا | يرسل البريد الإلكتروني للمستخدمين الذين يطابقون شرط فلتر معين. |
| devices | array | لا | قائمة بعناوين البريد الإلكتروني (بحد أقصى 1000) لإرسال رسائل بريد إلكتروني مستهدفة. إذا تم استخدامها، يتم إرسال الرسالة فقط إلى هذه العناوين. يتم تجاهلها إذا تم استخدام مجموعة التطبيقات. |
| use_auto_registration | boolean | لا | إذا كانت القيمة true، يتم تسجيل رسائل البريد الإلكتروني من معلمة devices تلقائيًا. |
| users | array | لا | إذا تم تعيينها، سيتم تسليم رسالة البريد الإلكتروني فقط إلى معرفات المستخدم (User ID) المحددة (المسجلة عبر استدعاء /registerEmail). لا يزيد عن 1000 معرف مستخدم في مصفوفة. إذا تم تحديد معلمة “devices”، فسيتم تجاهل معلمة “users”. |
| dynamic_content_placeholders | object | لا | عناصر نائبة للمحتوى الديناميكي بدلاً من قيم وسوم الجهاز. |
| conditions | array | لا | شروط التجزئة باستخدام الوسوم. مثال: [["Country", "EQ", "BR"]]. |
| from | object | لا | حدد اسم مرسل وبريدًا إلكترونيًا مخصصًا، متجاوزًا الإعداد الافتراضي في خصائص التطبيق. |
| reply-to | object | لا | حدد بريدًا إلكترونيًا مخصصًا للرد، متجاوزًا الإعداد الافتراضي في خصائص التطبيق. |
| bcc | array | لا | BCC (نسخة كربونية عمياء): مصفوفة من عناوين البريد الإلكتروني التي تتلقى نسخة من البريد الإلكتروني دون أن يراها المستلمون الآخرون. |
| email_type | string | لا | حدد نوع البريد الإلكتروني: "marketing" أو "transactional". إذا تم حذفه، تُعامل الرسالة على أنها معاملاتية ويتم تسليمها للجميع، بما في ذلك المجموعة الضابطة. لا يتم تسليم الرسائل التسويقية لأعضاء المجموعة الضابطة. |
| email_category | string | مطلوب عندما يكون email_type هو "marketing". | حدد أحد أسماء الفئات التي تم تكوينها في مركز تفضيلات الاشتراك (مثل النشرة الإخبارية، الترويجية، تحديثات المنتج). |
| transactionId | string | لا | معرف رسالة فريد لمنع إعادة الإرسال في حالة وجود مشاكل في الشبكة. يتم تخزينه على جانب Pushwoosh لمدة 5 دقائق. |
| capping_days | integer | لا | عدد الأيام (بحد أقصى 30) لتطبيق تحديد التكرار لكل جهاز. ملاحظة: تأكد من تكوين تحديد التكرار العالمي في لوحة التحكم. |
| capping_count | integer | لا | الحد الأقصى لعدد رسائل البريد الإلكتروني التي يمكن إرسالها من تطبيق معين إلى جهاز معين خلال فترة capping_days. في حالة تجاوز الرسالة التي تم إنشاؤها حد capping_count لجهاز ما، فلن يتم إرسالها إلى ذلك الجهاز. |
| capping_exclude | boolean | لا | إذا تم تعيينها على true، فلن يتم احتساب هذا البريد الإلكتروني ضمن تحديد التكرار للرسائل المستقبلية. |
| capping_avoid | boolean | لا | إذا تم تعيينها على true، فلن يتم تطبيق تحديد التكرار على هذا البريد الإلكتروني المحدد. |
| send_rate | integer | لا | حدد عدد الرسائل التي يمكن إرسالها في الثانية عبر جميع المستخدمين. يساعد على منع الحمل الزائد على الواجهة الخلفية أثناء عمليات الإرسال ذات الحجم الكبير. |
| send_rate_avoid | boolean | لا | إذا تم تعيينها على true، فلن يتم تطبيق حد التقييد على هذا البريد الإلكتروني المحدد. |
مثال على الطلب
Anchor link to{ "request": { "auth": "API_ACCESS_TOKEN", // مطلوب. رمز الوصول إلى API من لوحة تحكم Pushwoosh "application": "APPLICATION_CODE", // مطلوب. رمز تطبيق Pushwoosh. "notifications": [{ "send_date": "now", // مطلوب. YYYY-MM-DD HH:mm أو 'now' "preset": "ERXXX-32XXX", // مطلوب. انسخ رمز الإعداد المسبق للبريد الإلكتروني من شريط URL // لصفحة محرر محتوى البريد الإلكتروني في لوحة تحكم Pushwoosh. "subject": { // اختياري. سطر موضوع رسالة البريد الإلكتروني. "de": "subject de", "en": "subject en" }, "content": { // اختياري. محتوى جسم البريد الإلكتروني. "de": "<html><body>de Hello, moto</body></html>", "default": "<html><body>default Hello, moto</body></html>" }, "attachments": [{ // اختياري. مرفقات البريد الإلكتروني "name": "image.png", // "name" - اسم الملف "content": "iVBANA...AFTkuQmwC" // "content" - محتوى الملف بترميز base64 }, { "name": "file.pdf", "content": "JVBERi...AFTarEGC" }], "list_unsubscribe": "URL", // اختياري. السماح بتعيين عنوان URL مخصص لرأس "Link-Unsubscribe" "campaign": "CAMPAIGN_CODE", // اختياري. لتعيين رسالة البريد الإلكتروني هذه إلى حملة معينة، // أضف رمز الحملة هنا. "ignore_user_timezone": true, // اختياري. "timezone": "America/New_York", // اختياري. حدد لإرسال الرسالة وفقًا // للمنطقة الزمنية المحددة على جهاز المستخدم. "filter": "FILTER_NAME", // اختياري. أرسل الرسالة إلى مستخدمين محددين يستوفون شروط الفلتر. "devices": [ // اختياري. حدد عناوين البريد الإلكتروني لإرسال رسائل بريد إلكتروني مستهدفة. "email_address1", // لا يزيد عن 1000 عنوان في مصفوفة. "email_address2" // إذا تم تعيينها، سيتم إرسال الرسالة فقط إلى العناوين الموجودة ], // في القائمة. يتم تجاهلها إذا تم استخدام مجموعة التطبيقات. "use_auto_registration": true, // اختياري. تسجيل رسائل البريد الإلكتروني المحددة في معلمة "devices" تلقائيًا "users": [ // اختياري. إذا تم تعيينها، سيتم تسليم رسالة البريد الإلكتروني فقط إلى "userId1", // معرفات المستخدم المحددة (المسجلة عبر استدعاء /registerEmail). "userId2" // لا يزيد عن 1000 معرف مستخدم في مصفوفة. ], // إذا تم تحديد معلمة "devices"، // فسيتم تجاهل معلمة "users". "dynamic_content_placeholders": { // اختياري. عناصر نائبة للمحتوى الديناميكي بدلاً من قيم وسوم الجهاز. "firstname": "John", "firstname_en": "John" }, "conditions": [ // اختياري. شروط التجزئة، انظر الملاحظة أدناه. ["Country", "EQ", "BR"], ["Language", "EQ", "pt"] ], "from": { // اختياري. حدد اسم مرسل وعنوان بريد إلكتروني للمرسل "name": "alias from", // لاستبدال "اسم المرسل" و "بريد المرسل" الافتراضيين "email": "from-email@email.com" // المعدين في خصائص التطبيق. }, "reply-to": { // اختياري. حدد عنوان بريد إلكتروني لاستبدال "name": "alias reply to ", // "الرد على" الافتراضي المعد في خصائص التطبيق. "email": "reply-to@email.com" }, "bcc": [ // اختياري. BCC: مصفوفة من عناوين البريد الإلكتروني التي تتلقى نسخة دون أن يراها المستلمون الآخرون. "bcc1@example.com", "bcc2@example.com" ], "email_type": "marketing", // اختياري. "marketing" أو "transactional". // إذا تم حذفه، يُعامل على أنه معاملاتية: يتم تسليمه للجميع. // لا يتم تسليم الرسائل التسويقية لأعضاء المجموعة الضابطة. "email_category": "category name",// مطلوب عندما يكون email_type هو "marketing". اسم الفئة. "transactionId": "unique UUID", // اختياري. معرف رسالة فريد لمنع إعادة الإرسال // في حالة وجود مشاكل في الشبكة. يتم تخزينه على جانب // Pushwoosh لمدة 5 دقائق. // معلمات تحديد التكرار. تأكد من تكوين تحديد التكرار العالمي في لوحة التحكم. // لا ينطبق تحديد التكرار على الرسائل المعاملاتية. // في جميع الحالات الأخرى، بما في ذلك حذف "email_type"، ينطبق تحديد التكرار. "capping_days": 30, // اختياري. عدد أيام تحديد التكرار (بحد أقصى 30 يومًا) "capping_count": 10, // اختياري. الحد الأقصى لعدد رسائل البريد الإلكتروني التي يمكن إرسالها من // تطبيق معين إلى جهاز معين خلال فترة 'capping_days'. // في حالة تجاوز الرسالة التي تم إنشاؤها حد // 'capping_count' لجهاز ما، فلن // يتم إرسالها إلى ذلك الجهاز. "capping_exclude": true, // اختياري. إذا تم تعيينها على true، فلن يتم احتساب هذا البريد الإلكتروني // ضمن تحديد التكرار للرسائل المستقبلية. "capping_avoid": true, // اختياري. إذا تم تعيينها على true، فلن يتم تطبيق تحديد التكرار على // هذا البريد الإلكتروني المحدد. "send_rate": 100, // اختياري. حد التقييد. // حدد عدد الرسائل التي يمكن إرسالها في الثانية عبر جميع المستخدمين. // يساعد على منع الحمل الزائد على الواجهة الخلفية أثناء عمليات الإرسال ذات الحجم الكبير. "send_rate_avoid": true, // اختياري. إذا تم تعيينها على true، فلن يتم تطبيق حد التقييد على // هذا البريد الإلكتروني المحدد. }] }}أمثلة على الاستجابة
Anchor link to{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 210, "status_message": "Preset content is not approved", "response": null}{ "status_code": 403, "status_message": "Token restrictions forbid this operation", "response": null}شروط الوسم
Anchor link toكل شرط وسم هو مصفوفة مثل [tagName, operator, operand] حيث
- tagName: اسم الوسم
- operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN”
- operand: string | integer | array | date
وصف المعامل (operand)
Anchor link to- EQ: قيمة الوسم تساوي المعامل؛
- IN: قيمة الوسم تتقاطع مع المعامل (يجب أن يكون المعامل دائمًا مصفوفة)؛
- NOTEQ: قيمة الوسم لا تساوي المعامل؛
- NOTIN: قيمة الوسم لا تتقاطع مع المعامل (يجب أن يكون المعامل دائمًا مصفوفة)؛
- GTE: قيمة الوسم أكبر من أو تساوي المعامل؛
- LTE: قيمة الوسم أصغر من أو تساوي المعامل؛
- BETWEEN: قيمة الوسم أكبر من أو تساوي قيمة المعامل الدنيا ولكنها أصغر من أو تساوي قيمة المعامل القصوى (يجب أن يكون المعامل دائمًا مصفوفة).
وسوم السلسلة النصية (String tags)
Anchor link toالعوامل الصالحة: EQ, IN, NOTEQ, NOTIN
المعاملات الصالحة:
- EQ, NOTEQ: يجب أن يكون المعامل سلسلة نصية؛
- IN, NOTIN: يجب أن يكون المعامل مصفوفة من السلاسل النصية مثل
["value 1", "value 2", "value N"]؛
وسوم الأعداد الصحيحة (Integer tags)
Anchor link toالعوامل الصالحة: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
المعاملات الصالحة:
- EQ, NOTEQ, GTE, LTE: يجب أن يكون المعامل عددًا صحيحًا؛
- IN, NOTIN: يجب أن يكون المعامل مصفوفة من الأعداد الصحيحة مثل
[value 1, value 2, value N]؛ - BETWEEN: يجب أن يكون المعامل مصفوفة من الأعداد الصحيحة مثل
[min_value, max_value].
وسوم التاريخ (Date tags)
Anchor link toالعوامل الصالحة: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
المعاملات الصالحة:
"YYYY-MM-DD 00:00"(سلسلة نصية)- الطابع الزمني يونكس
1234567890(عدد صحيح) "N days ago"(سلسلة نصية) للعوامل EQ, BETWEEN, GTE, LTE
وسوم القيم المنطقية (Boolean tags)
Anchor link toالعوامل الصالحة: EQ
المعاملات الصالحة: 0, 1, true, false
وسوم القائمة (List tags)
Anchor link toالعوامل الصالحة: IN
المعاملات الصالحة: يجب أن يكون المعامل مصفوفة من السلاسل النصية مثل ["value 1", "value 2", "value N"].
registerEmail
Anchor link toيسجل عنوان البريد الإلكتروني للتطبيق.
POST https://api.pushwoosh.com/json/1.3/registerEmail
رؤوس الطلب
Anchor link to| الاسم | مطلوب | القيمة | الوصف |
|---|---|---|---|
| Authorization | نعم | Token XXXX | رمز جهاز API للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل XXXX برمز جهاز API الفعلي الخاص بك. |
جسم الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| application* | string | رمز تطبيق Pushwoosh |
| email* | string | عنوان البريد الإلكتروني. |
| language | string | لغة المنطقة المرتبطة بجهة الاتصال. لا يوجد جهاز لقراءتها منه، لذا مررها صراحة هنا، أو قم بتعيينها لاحقًا عبر الوسوم. جهة الاتصال التي تُترك بدونها لا تُحتسب لأي لغة وتحصل على البريد الإلكتروني باللغة الافتراضية. يجب أن يكون رمزًا من حرفين صغيرين وفقًا لمعيار ISO-639-1. |
| userId | string | معرف المستخدم (User ID) لربطه بعنوان البريد الإلكتروني. |
| tz_offset | integer | إزاحة المنطقة الزمنية بالثواني. |
| tags | object | قيم الوسوم لتعيينها للجهاز المسجل. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 210, "status_message": "this hwid (email) is blacklisted", "response": null}{ "status_code": 400, "status_message": "Missing required argument: email", "response": null}{ "status_code": 403, "status_message": "Token restrictions forbid this operation", "response": null}{ "status_code": 500, "status_message": "Internal server error", "response": null}{ "request": { "application": "APPLICATION_CODE", // مطلوب. رمز تطبيق Pushwoosh. "email":"email@domain.com", // مطلوب. عنوان البريد الإلكتروني المراد تسجيله. "language": "en", // اختياري. لغة المنطقة. "userId": "userId", // اختياري. معرف المستخدم لربطه بعنوان البريد الإلكتروني. "tz_offset": 3600, // اختياري. إزاحة المنطقة الزمنية بالثواني. "tags": { // اختياري. قيم الوسوم لتعيينها للجهاز المسجل. "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1","string2"], // يعين قائمة القيم للوسوم من نوع القائمة "DateTag": "2024-10-02 22:11", // لاحظ أن الوقت يجب أن يكون بتوقيت UTC "BooleanTag": true // القيم الصالحة هي: true, false } }}رموز الاستجابة
Anchor link toتعيد واجهة برمجة التطبيقات العامة النتيجة في status_code. استخدم الجدول أدناه لتحديد ما إذا كان يجب إعادة محاولة استدعاء فاشل.
status_code | المعنى | إعادة المحاولة؟ |
|---|---|---|
200 | نجاح — تم تسجيل عنوان البريد الإلكتروني. | لا — تم. |
210 | خطأ في الوسيطة/التحقق — تم فهم الطلب ولكن تم رفضه (عنوان محظور، بريد إلكتروني غير صالح أو مؤقت، منصة خاطئة لخطة الحساب). انظر رسائل الخطأ 210 أدناه. | لا — سيعيد نفس الطلب نفس الرمز 210. سجل العنوان وتجاوزه. |
400 | طلب غير صحيح — JSON غير صالح أو حقل مطلوب مفقود. | لا — أصلح الطلب، لا تكرره. |
403 | محظور — رمز جهاز API غير صالح أو مقيد. | لا — أصلح التفويض. |
500 | خطأ داخلي في الخادم — مشكلة مؤقتة في البنية التحتية أو مهلة. | نعم، مع التراجع الأسي — الحالة العابرة الوحيدة. |
رسائل الخطأ 210
Anchor link toتحمل استجابة 210 السبب المحدد في status_message.
status_message | المعنى |
|---|---|
this hwid (email) is blacklisted | العنوان موجود في قائمة الحظر بعد ارتداد دائم (hard bounce) ولن يتم إعادة تسجيله. |
hwid (email) is invalid / has invalid semantic | فشل التحقق من صحة العنوان. |
hwid (email) is empty | لم يتم توفير عنوان. |
hwid (email) has invalid count of parts | علامة @ مفقودة أو زائدة. |
hwid (email) has invalid local part | الجزء قبل @ غير صالح. |
hwid (email) has invalid domain part | جزء النطاق غير صالح. |
hwid (email) has disposable domain | يستخدم العنوان نطاق بريد إلكتروني مؤقت/يمكن التخلص منه (مثل 10minutemail). |
hwid is not valid | hwid نفسه غير صحيح. |
only email platform allowed for Email Only subscription | الحساب على خطة بريد إلكتروني فقط ولا يمكنه تسجيل أجهزة غير بريد إلكتروني. |
deleteEmail
Anchor link toيزيل عنوان البريد الإلكتروني من قاعدة المستخدمين الخاصة بك.
POST https://api.pushwoosh.com/json/1.3/deleteEmail
رؤوس الطلب
Anchor link to| الاسم | مطلوب | القيمة | الوصف |
|---|---|---|---|
| Authorization | نعم | Token XXXX | رمز جهاز API للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل XXXX برمز جهاز API الفعلي الخاص بك. |
جسم الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| application | string | رمز تطبيق Pushwoosh |
| string | عنوان البريد الإلكتروني المستخدم في طلب /registerEmail. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "APPLICATION_CODE", // مطلوب. رمز تطبيق Pushwoosh "email": "email@domain.com" // مطلوب. البريد الإلكتروني المراد حذفه من مشتركي التطبيق. }}setEmailTags
Anchor link toيعين قيم الوسوم لعنوان البريد الإلكتروني.
POST https://api.pushwoosh.com/json/1.3/setEmailTags
رؤوس الطلب
Anchor link to| الاسم | مطلوب | القيمة | الوصف |
|---|---|---|---|
| Authorization | نعم | Token XXXX | رمز جهاز API للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل XXXX برمز جهاز API الفعلي الخاص بك. |
جسم الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| application | string | رمز تطبيق Pushwoosh |
| string | عنوان البريد الإلكتروني. | |
| tags | object | كائن JSON للوسوم المراد تعيينها، أرسل ‘null’ لإزالة القيمة. |
| userId | string | معرف المستخدم (User ID) المرتبط بعنوان البريد الإلكتروني. |
{ "status_code": 200, "status_message": "OK", "response": { "skipped": [] }}{ "request": { "email": "email@domain.com", // مطلوب. عنوان البريد الإلكتروني لتعيين الوسوم له. "application": "APPLICATION_CODE", // مطلوب. رمز تطبيق Pushwoosh. "tags": { "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], "DateTag": "2024-10-02 22:11", // الوقت بتوقيت UTC "BooleanTag": true // القيم الصالحة هي: true, false }, "userId": "userId" // اختياري. معرف المستخدم المرتبط بعنوان البريد الإلكتروني. }}registerEmailUser
Anchor link toيربط معرف مستخدم (User ID) خارجي بعنوان بريد إلكتروني محدد.
POST https://api.pushwoosh.com/json/1.3/registerEmailUser
يمكن استخدامها في استدعاء واجهة برمجة التطبيقات /createEmailMessage (معلمة ‘users’).
رؤوس الطلب
Anchor link to| الاسم | مطلوب | القيمة | الوصف |
|---|---|---|---|
| Authorization | نعم | Token XXXX | رمز جهاز API للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل XXXX برمز جهاز API الفعلي الخاص بك. |
جسم الطلب
Anchor link to| الاسم | النوع | الوصف |
|---|---|---|
| application* | string | رمز تطبيق Pushwoosh |
| email* | string | عنوان البريد الإلكتروني. |
| userId* | string | معرف المستخدم (User ID) لربطه بعنوان البريد الإلكتروني. |
| tz_offset | integer | إزاحة المنطقة الزمنية بالثواني. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "status_code": 400, "status_message": "Request format is not valid."}{ "status_code": 403, "status_message": "Forbidden."}{ "request": { "application": "APPLICATION_CODE", // مطلوب. رمز تطبيق Pushwoosh. "email": "email@domain.com", // مطلوب. عنوان بريد المستخدم الإلكتروني. "userId": "userId", // مطلوب. معرف المستخدم لربطه بعنوان البريد الإلكتروني. "tz_offset": 3600 // اختياري. إزاحة المنطقة الزمنية بالثواني. }}