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çinimp_, Resend içe aktarması içinpimp_ve takvim etkinliği içincal_; her birinin ardından 24 onaltılık karakter gelir. Bir indirme bağlantısınınfiles list-linksya dafiles create-linkkomutundan 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-importya daproviderImportsvesettingadlarına da yanıt verir. Fiiller, varsa alışılmış takma adları alır:listiçinls,getiçinshowveview,createiçinnewveadd,settings updateiçinedit,files deleteiçinrm,delveremove. - 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
--yesyanıt verir. openemail <command> --helpher 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--jsonekleyin.
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.
| Komut | Ne yapar |
|---|---|
| openemail files list | Dosyalardan 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 stats | Dosyaları 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,videoya datext),--direction(inbound,outboundya dauploaded),--address,--sinceve--untilile daraltılır,--sort(newest,oldest,largestya daname) ile sıralanır.--sinceve--untilbir ISO 8601 tarihi ya da tarih-saati alır:--sincekendi anını içerir,--untilise ondan önce durur.- Yalnızca hiçbir şeyin bağlı olmadığı bir yükleme silinebilir ve
deletablebunu önceden söyler.usagebaşka bir dosyayı neyin tuttuğunu söyler:received,sent, indirme bağlantısı hâlâ çalışan bir yükleme içinlinkedya da henüz gitmemiş bir mesaja eklenmiş olan içinscheduled.deletebunları 409file_in_useile reddeder.delete-manysilebildiğini siler, geri kalanları her biri için bir nedenlekeptiçinde ve bilinmeyen id'lerimissingiçinde listeler. uploadverdiğiniz yoldaki dosyayı okur ve onu o dosyanın adıyla, uzantısının işaret ettiği türle saklar.--filenameve--content-typebunları geçersiz kılar. stdin'den okurken-için--filenamegerekir;--content-typeolmadan türapplication/octet-streamolur. Yükleme en fazla 10 dakika bekler,--timeout-msbunu değiştirir.uploadkomutunun döndürdüğü id,openemail emails send --attachmentsiç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) 400upload_dangerous, 100 MB'ı aşan bir dosya da 413upload_too_largeverir. Bir çalışma alanı en fazla 10 GB yükleme tutar ve saatte 500 yükleme kabul eder. downloadterminalde--out <file>gerektirir ve o olmadan2çıkış koduyla durur. Bir kanala yönlendirildiğinde baytlar stdout'a gider;--out -de stdout ister. Dosyanın tamamı bellekte tutulur.create-linkher ç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--domainile verilen alan adınınfiles.acme.comgibi dosya alan adında, yoksa dosyanın adresinin dosya alan adında, o da yoksa API adresinde bulunur. Bir program ya da betik 422file_unshareableile reddedilir.revoke-linktekrarlanması 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.
| Komut | Ne 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_runningverir. import-files,--filesbayrağı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-spamve--options-include-trash; her biri başına--no-eklenerek kapatılır, örneğin--no-options-keep-inbox.keepInboxvarsayı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,--filesdeğerini satır içi ya da@pathile bir dosyadan JSON olarak alır ve herbytes, 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
chunkBytesuzunluğundadır; yanlış uzunluktaki bir parça 400bad_chunkverir.start, eksik parçaları olan bir dosyayı 412missing_chunksile, arşiv ya da posta kutusu olmayan bir dosyayı da 400unsupported_fileile reddeder. Zatenuploadingdurumundan çı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ıuploadingdurumunda 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
totalBytesiçindenprocessedBytesdeğerini veseen,imported,duplicate,filtered,failedvethreadsiçerencountsdeğerini bildirir.lastErroryalnızcastatusdeğerifailedolduğunda ayarlanır. list-failuresher hataya birreasonverir:too-large(50 MB üzeri),unparseable,no-date,storage-error,unreadable-entry,encrypted-entryya daarchive-limit; okunabildiği yerlerde konu ve gönderenle birlikte.- Bitmiş bir içe aktarmada
cancel409not_cancellableverir.delete-uploadhâlâ yüklenmekte olan bir içe aktarmayı iptal eder, kuyrukta ya da çalışmakta olanı ise 409still_runningile reddeder; bu yüzden önce onu iptal edin.
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.
| Komut | Ne 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 list | Gö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
@patholarak 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-rungövdeyi anahtar gizlenmiş olarak yazdırır. --resources;suppressions,audiences,contacts,templates,webhooks,domainsveapi-keysdeğerlerinden herhangi birini virgülle ayrılmış ya da tekrarlanmış olarak alır.- Yalnızca gönderim yapabilen bir anahtar 400
restricted_keyverir. İçe aktarma için Resend'de tam erişimli bir anahtar oluşturun ve sonrasında iptal edin. inspecther kaynağın ilk sayfasını okur ve kaynak başına bir{ count, more }içerencountsdeğerini döndürür; bir kaynak ilk sayfasını aşıyorsamoreayarlanır.- Bir çalışma alanında aynı anda tek bir içe aktarma çalışır ve ikincisi 409
already_runningverir. 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.unsubscribediçinde sayılır. report.domains, her Resend alan adını birstateile listeler: bu çalışma alanında yoksaabsent, varsa ama doğrulanmamışsaadded, bir deverified; Resend'de sahip olduğu kayıtlarla birlikte. Eksik olanıopenemail domains createile ekleyin.report.apiKeys,openemail keys createile yeniden oluşturulacak anahtarları adlandırır.- Bir tarayıcı oturumuyla bu komutları yalnızca çalışma alanı sahibi kullanabilir; bir üye 403
owner_onlyalı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. createayrıca getirdiği her kaynağın kapsamını gerektirir: kitleler içinaudiences:write, kişiler içincontacts:writeveaudiences:write, şablonlar içintemplates:write, webhook'lar içinwebhooks:writeve alan adları içindomains: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.
| Komut | Ne 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 |
--fromve--to,2026-10-01T00:00:00Zgibi ISO 8601 tarih-saatleridir.--to,--fromdeğ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 422invalid_parameterverir. Ayrıştırılamayan bir sınır, ters ya da fazla uzun bir aralık veya bilinmeyen bir saat dilimi 400invalid_parameterverir.--timezone,Europe/Londongibi 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-eventveget-event-ics, iCalendaruiddeğerini değil, bir tekrarıneventIddeğerini alır. Tekrarlanan bir seri tek bir etkinliktir, bu yüzdenstartveenddeğerleri ilk örneği tanımlar.- İptal edilen etkinlikler de
statusdeğeriCANCELLEDolarak 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
--cursorve 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-icsMETHOD:PUBLISHbildirir, 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.DTSTAMPindirme 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.
| Komut | Ne yapar |
|---|---|
| openemail settings get | Her 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 update | Verdiğiniz ayarları değiştirin, gerisini koruyun. Yanıt, yazmadan sonra yeniden okunan tüm ayarlardır |
--addressolmadanget, 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.--addressolmadanupdate;--signature,--open-email-signature,--track-opensve--track-clicksdeğerlerini 422address_requiredile reddeder ve hiçbir şey yazmaz. Onunla birlikteupdateyalnızca bu dördünü alır, başka her şey 422not_per_addressverir. Adres bu çalışma alanında olmalı ya da burada doğrulanmış ve catch-all'ı açık bir alan adı için*@domainolmalıdır.- Anahtarlar başlarına
--no-eklenerek kapatılır:--no-open-email-signature,--no-track-opensve--no-track-clicks. --signatureen 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 --helpiçindeki--signatureaçıklamasına bakın.- Bayraklar yaygın alanları kapsar.
--data,timeFormat,weekStart,undoSendEnabled,blockedSendersya dablockedDomainsgibi kayıtlı herhangi bir ayarı JSON olarak satır içi,@pathile 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 422invalid_parameterverir. blockedDomainsgibi 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 422blocklist_entry_too_broadverir.--timezoneve--languagedenetlenmeden 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,blockedWordsveuseDefaultBlockedWords, çalışma alanına aittir. Belirli adreslerle ya da alan adlarıyla sınırlı bir anahtar veya oturum bunları değiştiremez ve--addressiçinde yalnızca tuttuğu bir adresi ya da tamamını tuttuğu bir alan adındaki catch-all'ı belirtebilir. İki ret de 422capability_unsupportedverir. - İçinde hiçbir şey olmayan bir güncelleme hiçbir şeyi değiştirmez ve geçerli ayarları döndürür.
defaultEmailAliasyalnızca web uygulamasının yazma ekranında From adresini önceden seçer; API onu gönderen seçmek için asla kullanmaz.
Örnekler
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.pdfHer 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.
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.
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.
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]}'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.icsopenemail 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
| Kapsam | Komutlar |
|---|---|
| files:read | files list, get, stats, download, list-links |
| files:write | files create-link, revoke-link, upload, delete, delete-many |
| threads:read | imports list, get, list-failures |
| threads:write | imports create, upload-state, upload-chunk, start, cancel, delete-upload, import-files |
| settings:read | provider-imports list, get ve settings get |
| settings:write | provider-imports inspect, create, cancel ve settings update |
| calendar:read | calendar 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-uploadveprovider-imports cancelonay ister. Hayır yanıtı10koduyla çıkar ve hiçbir şeyi değiştirmez. Gözetimsiz çalışırken ve--yesolmadan, hiçbir şey gönderilmeden2çı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-runbir değişikliğin göndereceği isteği gövdesiyle yazdırır ve göndermeden ya da onay istemeden0koduyla çıkar. Bir dosya gövdesi boyutu ve türüyle gösterilir.files list,files list-links,imports list,provider-imports listvecalendar list-eventstek bir sayfa okur:--limit1 ile 100 arası bir değer alır ve verilmediğinde sunucu 25 gönderir;--cursorönceki sayfanınnextCursordeğerini alır.--allher sayfayı okur,--max <n>o kadar öğeden sonra durur,--ndjsonya da bir kanala yönlendirilen--allher satıra bir JSON nesnesi yazdırır.--jsonile tek bir{ items, hasMore, nextCursor }belgesi yazdırırlar.imports list-failureskendine özgü biçimde sayfalar:--afterönceki sayfanınnextCursordeğerini alır,--limiten fazla 100'dür ve varsayılan da budur;--allyoktur.--jsonile{ 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 startvesettings update. Diğer her değişiklik bir kez gönderilir. Kaybolan bir yanıttan sonra yeniden denemeden önce bakın: ikinci biruploadikinci bir kopya saklar, ikinci bircreate-linkikinci bir bağlantı oluşturur, ikincifiles deletedenemenizdeki bir 404 ilkinin işe yaradığı anlamına gelir, ikinci birdelete-manyde ilkinin sildiklerinimissingiçinde listeler. - Bir ret, durumunun koduyla çıkar: 403 için
4, 404 için5, 409 için6, 400 ya da 422 için7ve 429 için8.