تخطَّ إلى المستندات
SDK

المسودات

`drafts.list` و`listAll` و`iterate` و`get` و`create` و`update` و`delete`.

كل الدوال

usage.ts
const page = await openemail.drafts.list({ query: 'invoice', limit: 25 })const draft = await openemail.drafts.get('draft_…') const created = await openemail.drafts.create({  to: ['[email protected]'],  cc: [],  bcc: [],  subject: 'Your September invoice',  html: '<p>Draft body.</p>',  from: '[email protected]',  threadId: 'thread_…',}) const updated = await openemail.drafts.update(created.id!, { subject: 'Revised' })await openemail.drafts.delete(updated.id!)

يحافظ update على معرّف المسودة، فالقيمة التي يجيب بها هي دائمًا القيمة التي مرّرتها. ومعرّف غير معروف يعطي 404 لا مسودة جديدة.

يرقّم list الصفحات بالطريقة نفسها التي يتبعها threads.list: فقيمة pageToken من واجهة API تعود باسم nextCursor وتُمرَّر داخلًا باسم cursor، ويتبعها listAll وiterate نيابةً عنك.

لإرسال مسودة، مرّر معرّفها إلى emails.send. فالمسودة توفّر المحتوى والإرسال يوفّر المُغلَّف.

send-draft.ts
await openemail.emails.send({  from: '[email protected]',  to: '[email protected]',  draftId: 'draft_…',})

المعاملات: drafts.create و drafts.update (DraftInput)

tostring[]
عناوين المستلمين كسلاسل نصية بسيطة، لا بصيغ `RecipientInput` التي يقبلها `emails.send`، لأن هذه النقطة تدمج المصفوفة في القائمة المفصولة بفواصل التي يريدها المُشغِّل. وعند الإنشاء تُحفظ المصفوفة المحذوفة فارغة؛ وعند التحديث يترك الحقل المحذوف المستلمين المخزَّنين كما هم، لأن المعالج يقرأ المسودة أولًا ثم يدمج.
ccstring[]
عناوين Cc، بصيغة السلاسل البسيطة نفسها المستخدمة في `to`. فارغة عند الإنشاء إذا حُذفت، وتُترك كما هي عند التحديث إذا حُذفت.
bccstring[]
عناوين Bcc، بصيغة السلاسل البسيطة نفسها المستخدمة في `to`. فارغة عند الإنشاء إذا حُذفت، وتُترك كما هي عند التحديث إذا حُذفت.
subjectstring
موضوع المسودة، بحد أقصى 998 حرفًا، وهو حد السطر في RFC 5322. وعند الإنشاء يكون الافتراضي سلسلة فارغة، فللمسودة موضوع دائمًا.
htmlstring
جسم المسودة كترميز، بحد أقصى 1,000,000 حرف. وهو الجسم الغالب: إذ يغذّي `html` و`text` حقل الرسالة الوحيد لدى المُشغِّل، فإرسال الاثنين يخزّن هذا الحقل.
textstring
جسم نصي عادي، بحد أقصى 1,000,000 حرف، ولا يُستخدم إلا في غياب `html`. والمسودة تخزّن جسمًا واحدًا لا جزأين، فالنص المرسل هنا يعود في `html` عند قراءة المسودة.
fromstring
عنوان المرسل المراد حفظه على المسودة. وعند التحديث يُنقل من المسودة المخزَّنة إذا حُذف. فالمُشغِّل يعيد بناء الرسالة كاملة مما يُسلَّم إليه، ومن ثَم فإن تعديلًا جزئيًا يُسقطه كان سيغيّر المرسل المختار بصمت.
threadIdstring
اربط المسودة بمحادثة قائمة لتُحفظ كرد. ومثل `from`، يُنقل عند التحديث إذا حُذف، لأن إعادة بناء الرسالة بدونه كانت ستفصل الرد عن محادثته.

الاستجابة: DraftResource (drafts.get)

object'draft'
دائمًا `draft`.
idstring
معرّف المسودة. تجيب عمليات الكتابة بـ `SavedDraftResource` بدلًا من المسودة كاملة، لذا اقرأ المعرّف من النتيجة بدلًا من إعادة استخدام الذي أرسلته.
tostring[]
عناوين المستلمين كما خزّنتها المسودة. مصفوفة فارغة، لا null أبدًا، عندما لا يكون للمسودة أي منها.
ccstring[]
عناوين Cc كما هي مخزَّنة. مصفوفة فارغة، لا null أبدًا، عندما لا يكون للمسودة أي منها.
bccstring[]
عناوين Bcc كما هي مخزَّنة. مصفوفة فارغة، لا null أبدًا، عندما لا يكون للمسودة أي منها.
subjectstring
الموضوع المخزَّن، أو سلسلة فارغة حين لا يكون للمسودة موضوع. وهذا الحقل ليس null أبدًا، لذا افحص طوله لا وجوده.
htmlstring
الجسم المخزَّن، أو سلسلة فارغة حين لا يكون للمسودة جسم. ولا يوجد حقل نصي منفصل في الخرج: فالمسودة المحفوظة بـ `text` وحده تُعاد هنا.