پرش به مستندات
Python

دامنه‌ها

`domains.list`، `list_all`، `iterate`، `get` و `update`.

همهٔ متدها

usage.py
from openemail import openemail domains = openemail.domains.list()domain = openemail.domains.get('b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f') print(domain['receiving']['verified'], domain['sending']['status'])for address in domain['addresses']:    print(address['address'], address['enabled']) updated = openemail.domains.update(domain['id'], {'trackingHost': 'links.acme.com'})tracking = updated['tracking']print(tracking['status']) if tracking['record'] is not None:    print(tracking['record']['name'], tracking['record']['value']) openemail.domains.update(domain['id'], {'trackingHost': None})

دریافت و ارسال دو واقعیت مستقل‌اند و به‌صورت دو شیء بازگردانده می‌شوند. receiving.verified یعنی MX دامنه ایمیلش را به اینجا می‌آورد و چالش مالکیتش منتشر شده است. sending بررسی امضای خروجی را گزارش می‌دهد: status یکی از verified، pending، failed، no_identity یا unknown است، و canSend می‌گوید آیا ارسالی از آن دامنه همین حالا پذیرفته می‌شود یا نه. حکم منفی‌ای که بیش از یک روز از آن گذشته باشد به‌جای رد، ناشناخته در نظر گرفته می‌شود، پس به‌جای status روی canSend شاخه بزنید.

update دامنهٔ ردیابی اختصاصی دامنه را تنظیم می‌کند، دوباره بررسی می‌کند یا برمی‌دارد، یعنی زیردامنه‌ای مانند links.acme.com، و همان DomainDetailResource ای را برمی‌گرداند که get برمی‌گرداند. tracking در هر خواندن آن را گزارش می‌دهد. تا وقتی بررسی‌ای موفق نشود، tracking.status برابر pending است و پیوندهای ردیابی‌شده و پیکسل باز شدن همچنان از میزبان پیش‌فرض OpenEmail استفاده می‌کنند. به‌محض موفقیت یکی، مقدار active می‌شود و ایمیل‌های تازهٔ آن دامنه برای هر دو از دامنهٔ ردیابی استفاده می‌کنند.

get آدرس‌های روی دامنه را هم فهرست می‌کند. addresses.list() فراخوانی مرتبط است: هر آدرسی که این کلید می‌تواند در سرآیند From بگذارد، که محدودتر است.

app_host فضای نام جداگانه‌ای است. get، set، verify و delete نشانی برنامهٔ وب فضای کاری را می‌خوانند و تغییر می‌دهند، یعنی زیردامنه‌ای مانند mailbox.acme.com روی یکی از این دامنه‌ها یا هر دامنهٔ دیگری که در اختیار فضای کاری است، که افراد فضای کاری آنجا با برند فضای کاری وارد می‌شوند. set رکوردهای DNS برای انتشار را برمی‌گرداند، و delete از برنامهٔ OAuth کد تأیید هویت می‌خواهد، همان‌طور که یک set که میزبانی را که فضای کاری از پیش دارد جایگزین کند نیز می‌خواهد.

branding آن برند را تنظیم می‌کند. get پیوندهای نشان، لوگو، لوگوی حالت تیره و عکس صفحهٔ ورود، دو قلم و پس‌زمینهٔ ورود را می‌خواند. update قلم‌ها و پس‌زمینه را تغییر می‌دهد، upload_image(variant, data, content_type=...) یکی از چهار تصویر را بارگذاری می‌کند، و remove_image(variant) یکی را حذف می‌کند. لوگوست که به نشانی برنامه وب و، در طرح پولی، به ایمیل‌هایی که برای فضای کاری فرستاده می‌شوند برند می‌دهد.

پارامترها: domains.get

idstrالزامی
id از `domains.list`، یک UUID که هنگام افزودن دامنه ساخته شده، نه نام میزبان، پس `get('example.com')` چیزی پیدا نمی‌کند. جست‌وجو علاوه بر id به connection خود کلید نیز محدود است، پس دامنهٔ فضای کاری دیگر به‌جای 403 یک 404 است.

پارامترها: domains.update

idstrالزامی
همان domain id که `get` می‌گیرد. scope مورد نیاز آن `domains:write` است.
patch['trackingHost']str | None
زیردامنه‌ای از همان دامنه، حداکثر 512 نویسه، مانند `links.acme.com`. فاصله‌های اضافی حذف و حروف کوچک می‌شوند، و `https://` یا `http://` ابتدایی، مسیر و نقطهٔ انتهای نام حذف می‌شوند. مقدار تازه در همان فراخوانی اعتبارسنجی، ذخیره و بررسی می‌شود. اگر همان مقداری باشد که دامنه از پیش دارد، بررسی دوباره اجرا می‌شود، مگر آنکه از آخرین بررسی کمتر از 30 ثانیه گذشته باشد. `None` یا رشتهٔ خالی دامنهٔ ردیابی را برمی‌دارد.

میزبان ردشده یک OpenEmailApiError را raise می‌کند که در param نام trackingHost را می‌برد: 422 invalid_tracking_host برای نامی که قابل استفاده نیست، مثلاً نامی بیرون از دامنه؛ 409 domain_not_verified برای میزبان تازه وقتی receiving.verified برابر false است و رکورد TXT با نام _openemail-challenge دامنه هنوز منتشر نشده؛ و 409 tracking_host_in_use برای نامی که دامنهٔ دیگری از پیش به کار می‌برد، یا وقتی دامنهٔ ردیابی را سرور OpenEmail دیگری مدیریت می‌کند. کلیدی که به نشانی‌های مشخصی محدود شده 422 capability_unsupported می‌گیرد، چون دامنهٔ ردیابی روی همهٔ نشانی‌های آن دامنه اعمال می‌شود.

پاسخ: DomainDetailResource

objectLiteral['domain']
همیشه رشتهٔ `domain`، هم روی ردیف‌های `list` و هم روی همین یکی.
idstr
UUID دامنه. در تمام عمر آن ردیف پایدار است، و تنها دستگیره‌ای است که دیگر فراخوانی‌های domain می‌پذیرند.
domainstr
نام میزبان خالی، با حروف کوچک: `example.com`. در کل محصول یکتاست، یک مالک برای هر دامنه، پس دو فضای کاری نمی‌توانند هر دو مدعی آن شوند.
receiving.verifiedbool
به محض اینکه DNS نشان دهد MX دامنه میزبانی را نام می‌برد که نامه‌اش را به اینجا می‌آورد، و در جایی که ردیف یک توکن چالش دارد، رکورد TXT متناظر `_openemail-challenge` را هم نشان دهد، True می‌شود. MX به‌تنهایی چیزی را ثابت نمی‌کند، چون هر دامنه‌ای که برایش نامه دریافت می‌کنیم همان نام‌های میزبان را منتشر می‌کند؛ توکن به همین دلیل وجود دارد، و به همین دلیل این پرچم همان دروازه‌ای است که تحویل ورودی پیش از پذیرش نامه بررسی می‌کند.
receiving.verifiedAtstr | None
زمان موفق‌شدن تأیید، به شکل ISO-8601. تا وقتی تأیید نشده Null است، و `verified` دقیقاً از همین ستون مشتق می‌شود، پس این دو هرگز نمی‌توانند با هم ناسازگار باشند.
receiving.catchAllbool
اینکه آیا هر local-part پذیرفته می‌شود یا نه. برای دامنه‌هایی که پس از قاعده‌شدنِ این افزوده شده‌اند به‌صورت پیش‌فرض روشن است؛ با خاموش بودنش فقط نشانی‌های نام‌برده روی دامنه پذیرفته می‌شوند و بقیه در زمان SMTP رد می‌شوند، پس فرستنده به‌جای سکوت یک bounce می‌گیرد.
receiving.lastCheckedAtstr | None
آخرین باری که دربارهٔ این دامنه از DNS پرسیده شد. Null یعنی هرگز نگاه نشده، که برای کسی که یک دقیقه پیش دامنه‌ای افزوده معنایی بسیار متفاوت از شکست دارد. این endpoint نتیجهٔ ذخیره‌شده را گزارش می‌کند و هرگز خودش بررسی‌ای اجرا نمی‌کند.
receiving.errorstr | None
چرا آخرین بررسی موفق نشد، با عبارتی که مالک بتواند بر اساس آن اقدام کند: `No MX records yet. DNS changes can take a few minutes to spread.` نمونه‌ای معمول است. به محض موفق شدن Null می‌شود، و ذخیره می‌شود نه مشتق، تا بارگذاری دوباره و بررسی مجدد زمان‌بندی‌شده یک چیز بگویند.
sending.statusLiteral['verified', 'pending', 'failed', 'no_identity', 'unknown']
وضعیت امضای خروجی، همان‌طور که آخرین بررسی آن را دید. از بررسی ذخیره‌شده خوانده می‌شود نه با کاوش در همین درخواست، پس `sending.checkedAt` می‌گوید چقدر قدیمی است.
sending.canSendbool
اینکه آیا ارسال از این دامنه همین حالا پذیرفته می‌شود یا نه. حکم منفیِ قدیمی‌تر از یک روز به‌جای رد، نامعلوم در نظر گرفته می‌شود، پس این می‌تواند true باشد در حالی که `status` برابر `pending` است. پیش از ارسال روی همین شاخه بزنید: مقدار false یعنی `emails.send` از این دامنه با یک 409 `domain_not_sendable` رد می‌شود.
sending.checkedAtstr | None
آخرین باری که وضعیت امضا بررسی شده، به‌صورت ISO-8601. null یعنی هرگز، که خوانشی بسیار متفاوت از شکست دارد.
sending.errorstr | None
آخرین شکست امضا به‌صورت متن، یا null به‌محض موفقیت.
sending.notestr
یکی از پنج جمله، که بر پایهٔ `sending.status` انتخاب می‌شود و می‌گوید آن وضعیت به زبانی که صاحب دامنه بتواند بر اساسش اقدام کند چه معنایی دارد. نثری برای خواندن انسان. به‌جای این، روی `sending.canSend` شاخه بزنید.
trackingDomainTracking
دامنهٔ ردیابی اختصاصی این دامنه، هم روی ردیف‌های `list` و هم روی همین یکی، و همان چیزی که `update` تغییرش می‌دهد.
tracking.hoststr | None
دامنهٔ ردیابی، مانند `links.acme.com`، یا null وقتی چیزی تنظیم نشده باشد.
tracking.statusLiteral['none', 'pending', 'active', 'failed']
`none` یعنی هیچ دامنهٔ ردیابی تنظیم نشده، `pending` یعنی هرگز از بررسی سربلند بیرون نیامده، `active` یعنی ایمیل‌های تازه از آن استفاده می‌کنند، و `failed` یعنی پیش‌تر موفق بوده و از آن پس از رده خارج شده است. میزبان فعال پس از سه بررسی ناموفق پیاپی، یا وقتی از آخرین بررسی موفقش بیش از 2 ساعت گذشته باشد، از رده خارج می‌شود.
tracking.activebool
دقیقاً وقتی درست است که `status` برابر `active` باشد، یعنی وقتی پیوندهای ردیابی‌شده و پیکسل بازشدن در نامه‌های تازهٔ آن دامنه از این میزبان استفاده می‌کنند.
tracking.targetstr
نشانی‌ای که رکورد CNAME به آن اشاره می‌کند، که تنها برای همین دامنهٔ ردیابی آماده شده است. تا وقتی `host` برابر null است، و تا وقتی نشانی میزبان تازه هنوز در حال آماده‌سازی است، رشتهٔ خالی است.
tracking.recordDomainTrackingRecord | None
رکوردی که باید منتشر شود، با نامِ `host` و مقدار `target`. وقتی دامنهٔ ردیابی‌ای نیست null است، و همچنین تا وقتی نشانیِ یک میزبان تازه هنوز در حال آماده‌شدن است.
tracking.checkedAtstr | None
آخرین باری که میزبان بررسی شده، ISO 8601. تا نخستین بررسی null است.
tracking.verifiedAtstr | None
آخرین باری که بررسی‌ای موفق شده، ISO 8601. برای میزبانی که هرگز بررسی‌ای را نگذرانده null است.
tracking.errorstr | None
آنچه آخرین بررسی یافته، با واژه‌هایی که صاحب دامنه بتواند بر اساسشان کاری بکند. وقتی آخرین بررسی موفق بوده یا هنوز هیچ بررسی‌ای اجرا نشده null است. میزبانی که یک یا دو بررسی را رد کرده باشد هنوز `active` است و دلیلش را اینجا با خود دارد.
addresseslist[DomainDetailResourceAddressesItem]
همهٔ ردیف‌های نشانی روی دامنه؛ همین است آنچه `get` نسبت به یک ردیف `list` اضافه می‌کند. شامل ردیف‌هایی هم هست که خودِ تحویل زیر catch-all نوشته است، و همان لحظه که catch-all خاموش شود پذیرش آن‌ها متوقف می‌شود، پس این آرایه فهرستِ آنچه نامه دریافت خواهد کرد نیست.
addresses[].addressstr
نشانی کامل، که از local-part ذخیره‌شده و نام میزبان بازساخته و به حروف کوچک تبدیل شده است، تا همیشه با `domain` بالا بخواند و از آن فاصله نگیرد.
addresses[].enabledbool
False نشانی را غیرفعال می‌کند، و نشانی غیرفعال حتی وقتی catch-all روشن است هم رد می‌شود. ردیف‌ها در هر حال فهرست می‌شوند، پس به‌جای خواندن آرایه به‌عنوان مجموعهٔ نشانی‌های کارا، روی همین فیلد فیلتر کنید.
createdAtstr
زمانی که ردیف دامنه افزوده شد، به شکل ISO-8601. نه زمان تأیید آن: آن `receiving.verifiedAt` است که می‌تواند null باشد در حالی که این یکی مقدار دارد.

مرجع