Belgelere geç
CLI

Dosyalar, içe aktarmalar ve ayarlar

Posta kutusunun tuttuğu dosyalar, eski bir posta kutusunu ya da bir Resend hesabını içe aktarma, postada bulunan takvim ve çalışma alanı ile her adresin ayarları için her komut.

Genel bakış

Beş ad alanı postanın kendisinin çevresindekileri kapsar. openemail files, Dosyalar sayfasıdır: gönderilen ve alınan her ek ile yüklenen her dosya, baytları ve gönderildiği indirme bağlantılarıyla. openemail imports eski bir posta kutusunu tek bir adrese aktarır, openemail provider-imports ise bir Resend hesabını taşır. openemail calendar postada bulunan etkinlikleri okur, openemail settings ise posta kutusu tercihlerini ve her adresin imzasını ve izleme ayarını okur ve değiştirir.

  • Bir id neyi adlandırdığını söyler: dosya için file_, posta kutusu içe aktarması için imp_, Resend içe aktarması için pimp_ ve takvim etkinliği için cal_; her birinin ardından 24 onaltılık karakter gelir. Bir indirme bağlantısının files list-links ya da files create-link komutundan gelen kendi id'si vardır.
  • Bir içe aktarmadaki --address-id, adresin kendisi değil, openemail domains list-addresses <id> komutundan gelen bir adres id'sidir.
  • Ad alanları file, import, provider-import ya da providerImports ve setting adlarına da yanıt verir. Fiiller, varsa alışılmış takma adları alır: list için ls, get için show ve view, create için new ve add, settings update için edit, files delete için rm, del ve remove.
  • Bu komutların hiçbiri bir tarayıcı oturumundan doğrulama kodu istemez. Bir şeyi kalıcı olarak değiştirenler onay ister ve bir betik için --yes yanıt verir.
  • openemail <command> --help her bağımsız değişkeni ve bayrağı türüyle, çağrının gerektirdiği kapsamla, yöntemi ve yoluyla ve neyin döndüğüyle listeler. Aynı sayfayı veri olarak almak için --json ekleyin.

Dosyalar

openemail files, posta kutusunun tuttuğu her dosyayı okur ve yönetir: gelen ekler, giden ekler ve Dosyalar sayfasına yüklenen dosyalar. openemail open files aynı sayfayı web uygulamasında açar.

KomutNe yapar
openemail files listDosyalardan bir sayfayı ad, tür, boyut, yön, her birinin geldiği adres ve silinip silinemeyeceğiyle listeleyin
openemail files get <id>Tek bir dosyayı ait olduğu konuşma ve mesajla, usage ve deletable değerleriyle okuyun
openemail files statsDosyaları ve kapladıkları baytları alınan, gönderilen ve yüklenen olarak ayırıp sayın; öne çıkan türler ve adresler, son 30 gün ve hâlâ çalışan bağlantılarla
openemail files download <id>Bir dosyanın baytlarını tam saklandığı gibi --out <file> içine ya da bir kanala yönlendirildiğinde stdout'a getirin
openemail files list-links <id>Bir dosyanın gönderildiği indirme bağlantılarını en yeniden eskiye, her birinin kaç kez indirildiği ve iptal edilip edilmediğiyle listeleyin
openemail files create-link <id>Dosyayı oturum açmadan açılan yeni bir herkese açık indirme bağlantısında yayımlayın
openemail files revoke-link <id> <link-id>Herkese açık bir bağlantıyı, önceden gönderilmiş postada da, kalıcı olarak durdurun. Onay ister
openemail files upload <data>Bir dosyayı bir yoldan ya da - ile stdin'den, en fazla 100 MB olarak yükleyin
openemail files delete <id>Hiçbir şeyin bağlı olmadığı bir yüklemeyi kalıcı olarak silin. Onay ister
openemail files delete-many <ids...>Tek bir çağrıda en fazla 100 dosya silin; tutulanları ve bulunamayanları bildirin. Onay ister
  • files list; --q (ad ve tür), --kind (image, pdf, audio, video ya da text), --direction (inbound, outbound ya da uploaded), --address, --since ve --until ile daraltılır, --sort (newest, oldest, largest ya da name) ile sıralanır. --since ve --until bir ISO 8601 tarihi ya da tarih-saati alır: --since kendi anını içerir, --until ise ondan önce durur.
  • Yalnızca hiçbir şeyin bağlı olmadığı bir yükleme silinebilir ve deletable bunu önceden söyler. usage başka bir dosyayı neyin tuttuğunu söyler: received, sent, indirme bağlantısı hâlâ çalışan bir yükleme için linked ya da henüz gitmemiş bir mesaja eklenmiş olan için scheduled. delete bunları 409 file_in_use ile reddeder. delete-many silebildiğini siler, geri kalanları her biri için bir nedenle kept içinde ve bilinmeyen id'leri missing içinde listeler.
  • upload verdiğiniz yoldaki dosyayı okur ve onu o dosyanın adıyla, uzantısının işaret ettiği türle saklar. --filename ve --content-type bunları geçersiz kılar. stdin'den okurken - için --filename gerekir; --content-type olmadan tür application/octet-stream olur. Yükleme en fazla 10 dakika bekler, --timeout-ms bunu değiştirir.
  • upload komutunun döndürdüğü id, openemail emails send --attachments içinde { "fileId": "…" } olarak dosyayı bir gönderime ekler; 5 MB satır içi sınırını aşan bir dosya böyle gönderilir.
  • Boş bir dosya 400 upload_empty, bir program ya da betik (adına göre değerlendirilir) 400 upload_dangerous, 100 MB'ı aşan bir dosya da 413 upload_too_large verir. Bir çalışma alanı en fazla 10 GB yükleme tutar ve saatte 500 yükleme kabul eder.
  • download terminalde --out <file> gerektirir ve o olmadan 2 çıkış koduyla durur. Bir kanala yönlendirildiğinde baytlar stdout'a gider; --out - de stdout ister. Dosyanın tamamı bellekte tutulur.
  • create-link her çağrıda kendi indirme sayacı olan yeni bir bağlantı oluşturur ve bağlantı iptal edilene ya da dosya silinene kadar çalışır. Bağlantı, varsa --domain ile verilen alan adının files.acme.com gibi dosya alan adında, yoksa dosyanın adresinin dosya alan adında, o da yoksa API adresinde bulunur. Bir program ya da betik 422 file_unshareable ile reddedilir.
  • revoke-link tekrarlanması güvenlidir: zaten iptal edilmiş bir bağlantı değişmeden döner.
  • Belirli adreslerle ya da alan adlarıyla sınırlı bir anahtar veya oturum yalnızca onlara gelen dosyaları görür, tüm çalışma alanı için yüklenen dosyaları asla görmez; kendi yüklemeleri de tuttuğu ilk adrese ait olur.
  • Dosya dizini yayına çıktığı günden itibaren başlar. Daha eski ekler hâlâ mesajlarında durur ve openemail threads list-attachments <id> onları oradan okur.

Posta kutusu içe aktarmaları

openemail imports eski bir posta kutusunu tek bir adrese aktarır: Google Takeout arşivleri, Apple Mail, Thunderbird ve çoğu masaüstü uygulamasından .mbox dosyaları, .eml dosyaları ve bunlardan herhangi birini içeren .zip ya da .tgz arşivleri; dosya başına en fazla 100 GB ve içe aktarma başına 50 dosya. Konuşmalar, tarihler ve etiketler de gelir. İçe aktarılan posta sessizdir: hiçbir kural, yönlendirme, bildirim, özet ya da webhook çalıştırmaz.

Çoğu kişinin ihtiyaç duyduğu import-files komutudur: içe aktarmayı oluşturur, her dosyayı bir ilerleme satırıyla parçalar hâlinde yükler ve başlatır. Diğer fiiller, duran bir yüklemeyi tamamlamak ya da süreci kendiniz yürütmek için bu adımların tek tek hâlidir. create planı, chunkBytes değerini ve her dosyanın chunks değerini döndürür, upload-chunk bir parça gönderir, upload-state hangi parçaların ulaştığını söyler, start ise içe aktarmayı kuyruğa alır. openemail open imports aynı içe aktarmaları web uygulamasında gösterir.

KomutNe yapar
openemail imports listÇalışma alanındaki içe aktarmalardan bir sayfayı en yeniden eskiye, durum, okunan baytlar ve sayılarla listeleyin. --address-id tek bir adresi tutar
openemail imports get <id>Tek bir içe aktarmayı durumu, ilerlemesi ve sayılarıyla okuyun. completed, failed ya da cancelled görünene kadar sorgulayın
openemail imports create --address-id <value> --files <json|@file|->Bir { name, bytes } listesinden içe aktarma oluşturun ve status değeri uploading olan yükleme planını alın
openemail imports upload-state <id>Her dosya için zaten saklanmış parçaların dizinleri; böylece duran bir yükleme yalnızca eksik olanı gönderir
openemail imports upload-chunk <id> <file> <chunk> <data>Bir dosyanın tek bir parçasını bir yoldan ya da - ile stdin'den yükleyin. Bir parçayı yeniden göndermek onun yerini alır
openemail imports start <id>Her parçanın ulaştığını kontrol edin, her dosyanın biçimini tanıyın ve içe aktarmayı kuyruğa alın
openemail imports cancel <id>İçe aktarmayı bir sonraki denetim noktasında durdurun. Zaten içe aktarılmış posta kalır. Onay ister
openemail imports list-failures <id>Taşınamayan her mesajı ya da arşiv girdisini nedeniyle birlikte listeleyin
openemail imports delete-upload <id>Yüklenen dosyaları silin. Zaten içe aktarılmış posta kalır. Onay ister
openemail imports import-files --address-id <value> --files <path>Tek bir komutla içe aktarma oluşturun, yükleyin ve başlatın; kuyruğa alındığı anda döner
  • Adres, çalışma alanının kendi alan adlarından birinde olmalı ve anahtarın ya da oturumun adına işlem yapabileceği bir adres olmalıdır. Adres başına yalnızca bir içe aktarma çalışır: biri kuyruktayken ya da çalışırken başlatılan bir diğeri 409 already_running verir.
  • import-files, --files bayrağını her dosya için bir kez ya da virgülle ayrılmış birkaç yol olarak alır ve her birini kendi dosya adıyla gönderir. --options, {"keepInbox":false,"includeSpam":true} gibi bir JSON alır. create üzerinde aynı üçü anahtardır: --options-keep-inbox, --options-include-spam ve --options-include-trash; her biri başına --no- eklenerek kapatılır, örneğin --no-options-keep-inbox.
  • keepInbox varsayılan olarak açıktır, bu yüzden eski gelen kutusundaki posta okunmamış durumuyla Gelen Kutusu'na düşer. Kapalıyken her şey Arşiv altına yerleştirilir. İstenmeyen posta ve çöp, siz dahil etmedikçe geride kalır.
  • create, --files değerini satır içi ya da @path ile bir dosyadan JSON olarak alır ve her bytes, daha sonra yükleyeceğiniz dosyanın tam boyutu olmalıdır.
  • Bir dosyanın son parçası dışında her parça tam olarak chunkBytes uzunluğundadır; yanlış uzunluktaki bir parça 400 bad_chunk verir. start, eksik parçaları olan bir dosyayı 412 missing_chunks ile, arşiv ya da posta kutusu olmayan bir dosyayı da 400 unsupported_file ile reddeder. Zaten uploading durumundan çıkmış bir içe aktarmada, içe aktarmayı değiştirmeden döndürür.
  • Bir parça yeniden denemelerinden sonra hâlâ başarısız olursa import-files, içe aktarmayı uploading durumunda bırakarak durur. Aşağıdaki blok ilk dosyanın eksik parçalarını gönderir ve içe aktarmayı başlatır.
  • Bir içe aktarma totalBytes içinden processedBytes değerini ve seen, imported, duplicate, filtered, failed ve threads içeren counts değerini bildirir. lastError yalnızca status değeri failed olduğunda ayarlanır.
  • list-failures her hataya bir reason verir: too-large (50 MB üzeri), unparseable, no-date, storage-error, unreadable-entry, encrypted-entry ya da archive-limit; okunabildiği yerlerde konu ve gönderenle birlikte.
  • Bitmiş bir içe aktarmada cancel 409 not_cancellable verir. delete-upload hâlâ yüklenmekte olan bir içe aktarmayı iptal eder, kuyrukta ya da çalışmakta olanı ise 409 still_running ile reddeder; bu yüzden önce onu iptal edin.
Duran bir yüklemeyi tamamlayın
openemail imports get "$import_id" --json > import.jsonopenemail imports upload-state "$import_id" --json > state.jsonchunk=$(jq .chunkBytes import.json)chunks=$(jq '.files[0].chunks' import.json)for i in $(seq 0 $((chunks - 1))); do  jq -e --argjson i "$i" '.received[0] | any(. == $i)' state.json > /dev/null && continue  dd if=takeout-001.zip bs="$chunk" skip="$i" count=1 2> /dev/null |    openemail imports upload-chunk "$import_id" 0 "$i" -doneopenemail imports start "$import_id"

Resend'den içe aktarmalar

openemail provider-imports, tam erişimli tek bir Resend API anahtarıyla bir çalışma alanını Resend'den taşır. Engellemeler nedenlerini korur, segmentler kitle olur, abone kişiler adlarıyla gelir, şablonlar da değişkenleri tanımlanmış HTML şablonları olarak gelir. Webhook'lar kapalı olarak kaydedilir, çünkü buradaki teslimler farklı imzalanır. Bir imzalama anahtarı ya da token Resend'den çıkamaz, bu yüzden alan adları ve API anahtarları bunun yerine raporda bir kontrol listesi olarak döner.

KomutNe yapar
openemail provider-imports inspect <api-key>İçe aktarmadan önce Resend hesabının kaynak başına neler tuttuğunu sayın. Hiçbir şey saklanmaz ve anahtar tutulmaz
openemail provider-imports create --resend-key <value> --resources <a,b>Adlandırdığınız kaynakların içe aktarmasını kuyruğa alın
openemail provider-imports listGönderim sağlayıcılarından yapılan içe aktarmalardan bir sayfayı en yeniden eskiye, her biri raporuyla listeleyin
openemail provider-imports get <id>Tek bir içe aktarmayı okuyun: durumu, bulunduğu adım ve şimdiye kadarki rapor
openemail provider-imports cancel <id>İçe aktarmayı durdurun ve Resend anahtarını silin. Zaten taşınmış olanlar kalır. Onay ister
  • Resend anahtarını bir dosyadan okumak için @path olarak ya da stdin'den okumak için - olarak verin; böylece kabuk geçmişinizin ve süreç listesinin dışında kalır. Komut satırına yazılan bir anahtar da bir uyarıyla çalışır. --dry-run gövdeyi anahtar gizlenmiş olarak yazdırır.
  • --resources; suppressions, audiences, contacts, templates, webhooks, domains ve api-keys değerlerinden herhangi birini virgülle ayrılmış ya da tekrarlanmış olarak alır.
  • Yalnızca gönderim yapabilen bir anahtar 400 restricted_key verir. İçe aktarma için Resend'de tam erişimli bir anahtar oluşturun ve sonrasında iptal edin.
  • inspect her kaynağın ilk sayfasını okur ve kaynak başına bir { count, more } içeren counts değerini döndürür; bir kaynak ilk sayfasını aşıyorsa more ayarlanır.
  • Bir çalışma alanında aynı anda tek bir içe aktarma çalışır ve ikincisi 409 already_running verir. Aynı içe aktarmayı iki kez çalıştırmak hiçbir şeyi çoğaltmaz. Anahtar yalnızca içe aktarma çalışırken şifreli olarak tutulur ve içe aktarma bittiğinde, başarısız olduğunda ya da iptal edildiğinde silinir.
  • Resend'de abonelikten çıkmış kişiler dışarıda bırakılır ve report.contacts.unsubscribed içinde sayılır.
  • report.domains, her Resend alan adını bir state ile listeler: bu çalışma alanında yoksa absent, varsa ama doğrulanmamışsa added, bir de verified; Resend'de sahip olduğu kayıtlarla birlikte. Eksik olanı openemail domains create ile ekleyin. report.apiKeys, openemail keys create ile yeniden oluşturulacak anahtarları adlandırır.
  • Bir tarayıcı oturumuyla bu komutları yalnızca çalışma alanı sahibi kullanabilir; bir üye 403 owner_only alır. Bir API anahtarı buna tabi değildir. Belirli adreslerle ya da alan adlarıyla sınırlı bir anahtar veya oturum içe aktarmayı inceleyemez ya da oluşturamaz, çünkü kitleler, engellemeler ve şablonlar tüm çalışma alanına aittir.
  • create ayrıca getirdiği her kaynağın kapsamını gerektirir: kitleler için audiences:write, kişiler için contacts:write ve audiences:write, şablonlar için templates:write, webhook'lar için webhooks:write ve alan adları için domains:read.

Takvim

openemail calendar postada bulunan takvim etkinliklerini okur. Üç komutun üçü de yalnızca okur. list-events, her etkinliği verdiğiniz zaman aralığındaki tekrarlarına açar, bu yüzden haftalık bir toplantı hafta başına bir satırdır; get-event ve get-event-ics ise tek bir etkinliği eksiksiz okur. openemail open calendar takvimi web uygulamasında açar.

KomutNe yapar
openemail calendar list-events --from <when> --to <when>İki an arasındaki tekrarlardan bir sayfayı başlangıç zamanına göre sıralı listeleyin; her biri eventId ile kendi etkinliğini gösterir
openemail calendar get-event <id>Bir etkinliği katılımcıları ve yanıtları, tekrarlama kuralı, hariç tutulan tarihleri, düzenleyicisi ve hatırlatıcılarıyla okuyun
openemail calendar get-event-ics <id>Etkinliği yazdırılmış ya da --out <file> içine yazılmış bir iCalendar belgesi olarak indirin
  • --from ve --to, 2026-10-01T00:00:00Z gibi ISO 8601 tarih-saatleridir. --to, --from değerinden sonra ve en fazla 366 gün sonra olmalıdır, çünkü tekrarlanan bir serinin listelenecek bir sonu yoktur. Eksik bir sınır 422 invalid_parameter verir. Ayrıştırılamayan bir sınır, ters ya da fazla uzun bir aralık veya bilinmeyen bir saat dilimi 400 invalid_parameter verir.
  • --timezone, Europe/London gibi bir IANA saat dilimidir; verilmediğinde UTC olur. Kendi saat dilimi olmadan saklanan etkinlikleri açar; tüm gün süren bir etkinliğin hangi güne düşeceğini bu belirler.
  • get-event ve get-event-ics, iCalendar uid değerini değil, bir tekrarın eventId değerini alır. Tekrarlanan bir seri tek bir etkinliktir, bu yüzden start ve end değerleri ilk örneği tanımlar.
  • İptal edilen etkinlikler de status değeri CANCELLED olarak listelenir. myPartstat, çalışma alanının kendi alan adlarında tuttuğu herhangi bir adres için kaydedilen yanıttır; hiçbiri katılımcı değilse null olur.
  • Sayfalama --cursor ve aynı zaman aralığıyla sürer. Belirli adreslerle sınırlı bir anahtar ya da oturum yalnızca bu adreslerden birinin düzenlediği ya da katıldığı etkinlikleri görür; diğer her etkinlik 404 verir.
  • get-event-ics METHOD:PUBLISH bildirir, bu yüzden içe aktarıldığında kabul etmeyi ya da reddetmeyi önermek yerine etkinliği olduğu gibi gösterir. Saatli etkinlikler UTC anları, tüm gün süren etkinlikler tarihler olarak yazılır. DTSTAMP indirme zamanıdır, bu yüzden değişmemiş bir etkinliğin iki indirmesi o satırda farklılık gösterir.

Ayarlar

openemail settings saat dilimi, dil, saat biçimi ve engel listeleri gibi posta kutusu tercihlerini okur ve değiştirir. Dört ayar çalışma alanına değil bir adrese aittir: signature, openEmailSignature (OpenEmail alt bilgisi), trackOpens ve trackClicks. Adresi --address ile, bir alan adının catch-all'ı için de *@acme.com ile belirtin.

KomutNe yapar
openemail settings getHer ayarı varsayılanlar doldurulmuş olarak okuyun. --address ile, adrese özel dört ayar o adresten yapılan bir gönderimin onları çözümlediği biçimde okunur
openemail settings updateVerdiğiniz ayarları değiştirin, gerisini koruyun. Yanıt, yazmadan sonra yeniden okunan tüm ayarlardır
  • --address olmadan get, adrese özel dört ayarı yerleşik varsayılanlar olarak okur: imza yok, OpenEmail alt bilgisi açık, açılma ve bağlantı izleme açık. Onunla birlikte değerler önce adresin kendi değerlerinden, catch-all o adresi yakaladıysa ardından alan adının catch-all'ından, sonra da varsayılanlardan gelir. Kendi ayarları olmayan bir artı adres, temel adresinin ayarlarını okur.
  • --address olmadan update; --signature, --open-email-signature, --track-opens ve --track-clicks değerlerini 422 address_required ile reddeder ve hiçbir şey yazmaz. Onunla birlikte update yalnızca bu dördünü alır, başka her şey 422 not_per_address verir. Adres bu çalışma alanında olmalı ya da burada doğrulanmış ve catch-all'ı açık bir alan adı için *@domain olmalıdır.
  • Anahtarlar başlarına --no- eklenerek kapatılır: --no-open-email-signature, --no-track-opens ve --no-track-clicks.
  • --signature en fazla 150,000 karakterlik HTML'dir ve yazılırken temizlenir, bu yüzden geri dönen, gönderilecek olandır. Boş bir dize onu kaldırır. Bir gönderimin onu ekleyip eklemeyeceği gönderime bağlıdır: openemail emails send --help içindeki --signature açıklamasına bakın.
  • Bayraklar yaygın alanları kapsar. --data, timeFormat, weekStart, undoSendEnabled, blockedSenders ya da blockedDomains gibi kayıtlı herhangi bir ayarı JSON olarak satır içi, @path ile bir dosyadan ya da - ile stdin'den alır. Ayarların tanımadığı anahtarlar hata vermeden atılır; yanlış türdeki bilinen bir anahtar 422 invalid_parameter verir.
  • blockedDomains gibi bir liste bütünüyle değiştirilir, bu yüzden aşağıdaki örnekte olduğu gibi önce okuyun ve değişikliğinizle birlikte geri gönderin. Kural olamayacak kadar kısa bir engel listesi girdisi 422 blocklist_entry_too_broad verir.
  • --timezone ve --language denetlenmeden verildiği gibi kaydedilir, bu yüzden bir saat dilimini ya da dil kodunu göndermeden önce kontrol edin.
  • Gizlilik alanları, yani externalImages, trustedSenders, blockedSenders, blockedDomains, blockedWords ve useDefaultBlockedWords, çalışma alanına aittir. Belirli adreslerle ya da alan adlarıyla sınırlı bir anahtar veya oturum bunları değiştiremez ve --address içinde yalnızca tuttuğu bir adresi ya da tamamını tuttuğu bir alan adındaki catch-all'ı belirtebilir. İki ret de 422 capability_unsupported verir.
  • İçinde hiçbir şey olmayan bir güncelleme hiçbir şeyi değiştirmez ve geçerli ayarları döndürür. defaultEmailAlias yalnızca web uygulamasının yazma ekranında From adresini önceden seçer; API onu gönderen seçmek için asla kullanmaz.

Örnekler

Bir dosya yükleyin ve bağlantıyla paylaşın
file_id=$(openemail files upload ./price-list.pdf --json | jq -r .id)openemail files create-link "$file_id" --domain acme.com --json | jq -r .urlopenemail files list-links "$file_id"openemail files download "$file_id" --out copy.pdf

Her create-link yeni bir bağlantı oluşturur, bu yüzden onu bir kez çalıştırın ve bağlantıyı list-links ile geri okuyun. revoke-link onu daha sonra, zaten gönderilmiş postada da durdurur.

Hiçbir şeyin kullanmadığı tüm yüklemeleri temizleyin
openemail files list --direction uploaded --all | jq -r 'select(.deletable) | .id' > deletable.txtwc -l < deletable.txtxargs -r -n 100 openemail files delete-many --yes --json < deletable.txt | jq -c '.kept[]'

Bir kanala yönlendirilen --all ile files list her satıra bir dosya yazdırır. xargs -n 100, delete-many komutuna çağrı başına en fazla 100 id verir; arada kullanılmaya başlanan bir dosya çağrıyı başarısız kılmak yerine nedeniyle birlikte kept içinde döner.

Eski bir posta kutusunu içe aktarın ve izleyin
domain_id=$(openemail domains list --all | jq -r 'select(.domain == "acme.com") | .id')address_id=$(openemail domains list-addresses "$domain_id" --all | jq -r 'select(.address == "[email protected]") | .id')openemail imports import-files --address-id "$address_id" --files ~/Downloads/takeout-001.zip --files ~/Downloads/takeout-002.zip --json > import.jsonimport_id=$(jq -r .id import.json)until openemail imports get "$import_id" --json | jq -e '.status != "queued" and .status != "running"' > /dev/null; do  sleep 60doneopenemail imports get "$import_id" --json | jq '{status, counts, lastError}'openemail imports list-failures "$import_id" --json | jq -r '.data[] | [.reason, .subject] | @tsv'

import-files üzerinde --dry-run, göndereceği POST /imports isteğini her dosyanın adı ve boyutuyla yazdırır ve hiçbir şey yüklemez. list-failures her seferinde 100 kayıt okur: sonraki sayfa için yazdırdığı nextCursor değerini --after olarak verin.

Resend'den taşının
openemail provider-imports inspect @resend-key.txtopenemail provider-imports create --resend-key @resend-key.txt --resources suppressions,audiences,contacts,templates,webhooks,domains,api-keys --json > resend.jsonpimp_id=$(jq -r .id resend.json)until openemail provider-imports get "$pimp_id" --json | jq -e '.status != "queued" and .status != "running"' > /dev/null; do  sleep 10doneopenemail provider-imports get "$pimp_id" --json | jq '.report | {contacts, domains: [.domains[] | {name, state}], apiKeys: [.apiKeys[].name]}'
Bir aylık toplantıları okuyun
openemail calendar list-events --from 2026-10-01T00:00:00Z --to 2026-11-01T00:00:00Z --timezone Europe/London --all |  jq -r 'select(.status != "CANCELLED") | [.start, .summary, .myPartstat] | @tsv'openemail calendar get-event cal_8d3f0a2b9c4e41f7a6b5c2d1 --json | jq '.attendees[] | {email, partstat}'openemail calendar get-event-ics cal_8d3f0a2b9c4e41f7a6b5c2d1 --out standup.ics
İmza, izleme ve engel listesi
openemail settings get --address [email protected] --json | jq '{signature, openEmailSignature, trackOpens, trackClicks}'openemail settings update --address [email protected] --signature "$(cat signature.html)" --no-track-clicks --dry-runopenemail settings update --address [email protected] --signature "$(cat signature.html)" --no-track-clicksopenemail settings update --address '*@acme.com' --no-track-opensopenemail settings update --timezone Europe/London --language enopenemail settings get --json | jq -c '{blockedDomains: ((.blockedDomains + ["spam.example"]) | unique)}' |  openemail settings update --data -

Deneme çalıştırması PATCH /settings?address=sales%40acme.com isteğini ve gövdesini göndermeden yazdırır. catch-all satırı, acme.com catch-all'ının yakaladığı her adres için izlemeyi ayarlar; son satır ise diğerlerini düşürmeden engel listesine bir alan adı ekler.

Kapsamlar, onaylar ve hatalar

KapsamKomutlar
files:readfiles list, get, stats, download, list-links
files:writefiles create-link, revoke-link, upload, delete, delete-many
threads:readimports list, get, list-failures
threads:writeimports create, upload-state, upload-chunk, start, cancel, delete-upload, import-files
settings:readprovider-imports list, get ve settings get
settings:writeprovider-imports inspect, create, cancel ve settings update
calendar:readcalendar list-events, get-event, get-event-ics
  • Kapsamı olmayan bir oturum ya da anahtar 4 çıkış koduyla durur, eksik kapsamın adını verir ve onu nasıl alacağınızı söyler.
  • files revoke-link, files delete, files delete-many, imports cancel, imports delete-upload ve provider-imports cancel onay ister. Hayır yanıtı 10 koduyla çıkar ve hiçbir şeyi değiştirmez. Gözetimsiz çalışırken ve --yes olmadan, hiçbir şey gönderilmeden 2 çıkış koduyla dururlar.
  • Buradaki hiçbir komut, ne tarayıcı oturumuyla ne de API anahtarıyla, doğrulama kodu istemez; bu yüzden bir betiğin ihtiyacı olan tek şey --yes'tir.
  • --dry-run bir değişikliğin göndereceği isteği gövdesiyle yazdırır ve göndermeden ya da onay istemeden 0 koduyla çıkar. Bir dosya gövdesi boyutu ve türüyle gösterilir.
  • files list, files list-links, imports list, provider-imports list ve calendar list-events tek bir sayfa okur: --limit 1 ile 100 arası bir değer alır ve verilmediğinde sunucu 25 gönderir; --cursor önceki sayfanın nextCursor değerini alır. --all her sayfayı okur, --max <n> o kadar öğeden sonra durur, --ndjson ya da bir kanala yönlendirilen --all her satıra bir JSON nesnesi yazdırır. --json ile tek bir { items, hasMore, nextCursor } belgesi yazdırırlar.
  • imports list-failures kendine özgü biçimde sayfalar: --after önceki sayfanın nextCursor değerini alır, --limit en fazla 100'dür ve varsayılan da budur; --all yoktur. --json ile { object, data, nextCursor } yazdırır.
  • Okumalar ve iki kez aynı sonucu veren değişiklikler bir ağ hatasından sonra yeniden denenir: files revoke-link, imports upload-chunk, imports start ve settings update. Diğer her değişiklik bir kez gönderilir. Kaybolan bir yanıttan sonra yeniden denemeden önce bakın: ikinci bir upload ikinci bir kopya saklar, ikinci bir create-link ikinci bir bağlantı oluşturur, ikinci files delete denemenizdeki bir 404 ilkinin işe yaradığı anlamına gelir, ikinci bir delete-many de ilkinin sildiklerini missing içinde listeler.
  • Bir ret, durumunun koduyla çıkar: 403 için 4, 404 için 5, 409 için 6, 400 ya da 422 için 7 ve 429 için 8.

Sırada nereye gitmeli

Gelen kutunuz,
kendi kurallarınızla.

İşletmeler, yapay zekâ, ajanlar ve kişisel e-posta için e-posta altyapısı. Ölçek, gizlilik ve denetim için kuruldu. E-postanın ilk günden sahip olması gereken her şey.

OpenEmail

İşletmeler, yapay zekâ, ajanlar ve kişisel e-posta için e-posta altyapısı. Ölçek, gizlilik ve denetim için kuruldu. E-postanın ilk günden sahip olması gereken her şey.

© 2026 OpenEmail. Tüm hakları saklıdır.