Belgelere geç
CLI

Betikler

JSON çıktısı, akışlar, çıkış kodları, ortam değişkenleri ve gözetimsiz ya da CI'da çalıştırma.

JSON çıktısı

--json ile stdout yalnızca iki boşlukla girintilenmiş JSON içerir, notlar ve ilerleme stderr'de kalır ve hiçbir şey sorulmaz. Bir liste { items, hasMore, nextCursor } yazdırır, bir API nesnesi API'nin döndürdüğü gibi yazdırılır, elle yazılmış bir komut ise yardımında tanımlanan nesneyi yazdırır.

Terminal
openemail whoami --json | jq -r .workspaceIdopenemail emails list --status failed --json | jq -r ".items[].id"

Bir hata stderr'e tek satır JSON olarak gider ve çıkış kodu bir kişinin alacağıyla aynıdır:

stderr
{"error":{"type":"permission_error","code":"insufficient_scope","message":"This API key does not have the domains:write scope.","hint":"The credential is missing a scope this call needs. Use a key that has it, or sign in again with openemail login.","next":null,"status":403,"requestId":"req_7Hc2kQ","param":null,"docUrl":"https://openemail.uk/docs/api/errors#insufficient_scope","exitCode":4}}
AlanNe tutar
typeAPI hata türü ya da CLI içindeki bir hata için cli_error, network_error veya internal_error
codeinsufficient_scope, not_signed_in ya da unknown_flag gibi kararlı bir kod
messageNeyin ters gittiği, tek cümleyle
hint, nextNe denenebileceği ve sonra çalıştırılacak komut, ya da null
status, requestId, param, docUrlHata API'den geldiyse API'den, yoksa null
exitCodeSürecin bittiği çıkış kodu

Akışlar

Bazı çıktılar, her satırda bir tane olmak üzere JSON nesnelerinden oluşan bir akıştır; böylece bir işlem hattı her öğeyi geldiği anda işleyebilir:

  • stdout bir terminal değilken --all ile ya da --ndjson ile bir kaynak listesi. --max <n> o kadar öğeden sonra durur.
  • openemail temp watch --json, her yeni ileti için bir satır.
  • openemail mcp serve, her yönde satır başına bir JSON-RPC iletisi.
Terminal
openemail contacts list --all > contacts.ndjsonopenemail emails list --status failed --all --max 500 | jq -r .id

Çıkış kodları

KodAnlamı
0Tamam
1Beklenmeyen bir hata, bir sunucu hatası ya da başarısız bir gönderim
2Bir kullanım hatası: hatalı bir bağımsız değişken, bilinmeyen bir komut ya da bayrak, sorulamayan bir değer ya da onay, veya CLI'nin kimlik bilgisi göndermeyeceği bir kaynak ya da yol
3Oturum açılmamış ya da oturum reddedilmiş, süresi dolmuş veya komut çalışırken kapatılmış
4İzin yok: eksik bir kapsam ya da izin, sorulamayan ya da duraklatılmış bir doğrulama kodu, veya tarayıcı oturumu gereken yerde bir API anahtarı
5Bulunamadı
6Mevcut durumla bir çakışma
7Girdi geçersizdi
8Hız sınırına takıldı ya da yapay zekâ kotası tükendi
9Ağ başarısız oldu ya da zaman aşımına uğradı
10İptal edildi: bir onayı ya da istemi reddettiniz
130, 143Ctrl+C ile ya da SIGTERM ile durduruldu

Ortam değişkenleri

DeğişkenNe yapar
OPENEMAIL_API_KEYKayıtlı her profil yerine kullanılacak bir API anahtarı
OPENEMAIL_PROFILEKullanılacak kayıtlı profil
OPENEMAIL_BASE_URLOPENEMAIL_API_KEY, --api-key ve kimlik bilgisi göndermeyen komutlar için API kaynağı. Kayıtlı bir oturum yalnızca oturum açtığı API'ye gider
OPENEMAIL_APP_URLOturum açma, open ve belge bağlantıları için web uygulamasının kaynağı
OPENEMAIL_CONFIG_DIRProfillerin ve kutu tokenlarının tutulduğu yer, ayarlanmamışsa ~/.openemail
OPENEMAIL_NO_UPDATE_CHECKnpm'de asla daha yeni bir sürüm aramayın. OPENEMAIL_DISABLE_UPDATE_NOTICE de aynısını yapar
NO_COLOR, FORCE_COLOR=0Renk yok
CIAsla sorma, asla tarayıcı açma, asla güncelleme arama. Çoğu CI hizmeti bu olmadan da tanınır
VISUAL, EDITORsend ve reply komutlarının bir gövde için açtığı düzenleyici

Gözetimsiz çalıştırmalar

CLI yalnızca stdin ve stdout ikisi de terminal olduğunda ve --json, --no-input ya da CI geçerli olmadığında soru sorar. Aksi halde:

  • Eksik bir zorunlu değer 2 çıkış koduyla durur ve verilmesi gereken bayrağı söyler.
  • Yıkıcı bir komut, --yes vermediğiniz sürece Refusing to run unattended. Pass --yes to confirm. iletisi ve 2 çıkış koduyla durur.
  • Doğrulama kodu gerektiren bir değişiklik 4 çıkış koduyla durur, çünkü kodu kimse yazamaz. Bir API anahtarı kullanın ya da önce openemail verify çalıştırın.

CI'da

İşe yalnızca ihtiyaç duyduğu kapsamlara sahip bir API anahtarı verin, onu bir sırda tutun ve OPENEMAIL_API_KEY taşısın. Hiçbir şey kaydedilmez, hiçbir şey sorulmaz ve güncelleme kontrolü çalışmaz.

.github/workflows/deploy.yml
- name: Tell the team  env:    OPENEMAIL_API_KEY: ${{ secrets.OPENEMAIL_API_KEY }}  run: |    npx -y @openemail/[email protected] send \      --from [email protected] \      --to [email protected] \      --subject "Deployed ${{ github.sha }}" \      --text "Build ${{ github.run_number }} is live." \      --idempotency-key "deploy-${{ github.run_id }}"
Bir kayıt e-postası bekleme
ADDRESS=$(npx -y @openemail/[email protected] temp new --ttl 15)./signup-test.sh "$ADDRESS"npx -y @openemail/[email protected] temp watch --first --json | jq -r .snippetnpx -y @openemail/[email protected] temp delete --yes
Başarısız gönderimlerde başarısız olma
failed=$(openemail emails list --status failed --json | jq ".items | length")test "$failed" -eq 0

Bir işlem hattının yeniden deneyebileceği bir gönderimde --idempotency-key verin ve onu gönderimi gerekli kılan şeyden, örneğin bir çalıştırma kimliğinden türetin. Adımı yeniden çalıştırmak o zaman iki kez göndermek yerine ilk gönderimi döndürür.

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.