Belgelere geç
CLI

Kimlik doğrulama

Tarayıcınızla ya da bir API anahtarıyla oturum açın, birden fazla profil tutun ve hassas bir değişiklikten önce bir kod doğrulayın.

Oturum açmanın iki yolu

Bir terminalde openemail login çalıştırın; hangisini istediğinizi sorar. Her iki durumda da oturum bir profil olarak kaydedilir ve sonraki her komut etkin profili kullanır.

KomutKim olarak davranırDoğrulama kodları
openemail loginSiz, onayladığınız çalışma alanında ve erişimleBirkaç hassas değişiklikten önce istenir
openemail login --with-tokenÇalışma alanı, anahtarın sahip olduğu kapsamlarlaAsla istenmez
  • ai compose, ai summarize ve MCP komutlarını yalnızca bir tarayıcı oturumu kullanabilir.
  • Bir tarayıcı oturumu, seçtiğiniz onayın süresi dolana ya da oturumu kapatana kadar geçerlidir. Bir anahtar iptal edilene kadar çalışır.

Tarayıcı oturumu

  1. openemail login bu oturum için OpenEmail CLI on <your computer> adında yeni bir uygulama kaydeder ve tarayıcınızda OpenEmail onay sayfasını açar. Tarayıcı açılmazsa yazdırdığı bağlantıyı kullanın.
  2. Gerekirse oturum açın, ardından çalışma alanını, CLI'nin alacağı erişimi (okuma, okuma ve gönderme, tam ya da kendi izin kümeniz), ulaşacağı alan adlarını ya da adresleri ve onayın ne kadar süreceğini seçin.
  3. Onaylayın. Tarayıcı onayı terminale kendiliğinden geri verir ve sekmeyi kapatabilirsiniz. CLI kim olarak oturum açtığınızı, çalışma alanını ve onayın ne zaman sona ereceğini yazdırır.
Terminal
openemail loginopenemail login --scopes emails:send,threads:readopenemail login --profile work
  • CLI onayınız için 10 dakika bekler. Onay sayfasında Şimdi değil seçeneğini seçmek, oturum açmayı 10 çıkış koduyla iptal eder.
  • --scopes onay sayfasında izinleri önceden seçer ve bunları orada hâlâ değiştirebilirsiniz.
  • Profilde zaten bir oturum varsa, terminal onu değiştirmeden önce sorar. Gözetimsiz çalışırken, --force ya da --yes vermediğiniz sürece reddeder. Bir tarayıcı oturumunu değiştirmek eskisini iptal eder.

Her tarayıcı oturumu kendi bağlı uygulamasıdır; onayladığınız erişimle Hesap → Bağlı uygulamalar altında listelenir, orada değiştirebilir ya da kaldırabilirsiniz. openemail open apps o sayfayı açar.

Altında MCP sunucusunun kullandığı OAuth akışı vardır: PKCE'li herkese açık bir istemci, tek kullanımlık bir kod ve bir saat geçerli olup sizin için yenilenen bir erişim tokenı. Tarayıcı rastgele bir bağlantı noktasında 127.0.0.1 adresine döner ve orada yalnızca bu oturumun kodu kabul edilir.

SSH üzerinden ya da tarayıcı olmadan

CLI bu makinede bir tarayıcı açamadığında bağlantıyı yazdırır: SSH üzerinden, CI'da, ekransız Linux'ta ya da --no-browser verdiğinizde. Bağlantıyı herhangi bir cihazdaki bir tarayıcıda açıp onaylayın. Sayfa ardından terminale yapıştıracağınız bir oturum kodu gösterir.

Terminal
$ openemail login --no-browserOpen this link in a browser on any device to sign in:  https://api.openemail.uk/auth/mcp/authorize?response_type=code&client_id=…Paste the code from your browser
  • Bir kod yalnızca bağlantıyı yazdıran oturum için geçerlidir, bu yüzden başka bir sekmeden gelen kod reddedilir.
  • Tarayıcının vardığı adresin tamamını yapıştırmak da işe yarar.
  • Terminal yoksa kodu stdin ile verin.

API anahtarları

Bir API anahtarı bir betiğin tarayıcısız oturum açmasını sağlar ve ondan asla kod istenmez. Ayarlar → API anahtarları (openemail open api-keys) bölümünden, yalnızca betiğin ihtiyaç duyduğu kapsamlarla bir tane oluşturun. CLI anahtarı kaydetmeden önce GET /keys/self ile kontrol eder ve oe_live_ ve oe_test_ anahtarlarını kabul eder. Test anahtarıyla gönderilen posta asla teslim edilmez.

Terminal
openemail login --with-token < ~/.config/openemail/keyecho "$OPENEMAIL_KEY" | openemail login --with-token --profile ciopenemail login --token oe_live_…

--token da çalışır, ancak anahtar kabuk geçmişinize düşer, bu yüzden CLI uyarır ve --with-token önerir. Bir anahtarı kaydetmeden kullanmanın iki yolu vardır:

  • Ortamdaki OPENEMAIL_API_KEY, onu gören her komut tarafından, kayıtlı her profilden önce kullanılır.
  • --api-key <key> yalnızca o tek komut için kullanılır.

Birden fazla kimlik bilgisi olduğunda şunlardan ilki kazanır: --api-key, OPENEMAIL_API_KEY, --profile ile adlandırılan profil, OPENEMAIL_PROFILE ile adlandırılan profil, sonra etkin profil.

Profiller

Profil, iki türden birindeki kayıtlı bir oturumdur. İlkinin adı default. --profile ile daha fazlasında oturum açın ve aralarında geçiş yapın:

Terminal
openemail login --profile workopenemail profile listopenemail profile use workopenemail inbox --profile defaultOPENEMAIL_PROFILE=work openemail statusopenemail profile currentopenemail profile remove work
  • profile list her profili türü, çalışma alanı ve kullanıcısı ya da anahtarıyla gösterir ve etkin olanı işaretler. JSON çıktısı asla bir token ya da anahtar içermez.
  • profile current stdout'a yalnızca adı yazdırır, bu yüzden $(openemail profile current) bir betikte çalışır.
  • profile remove <name>, openemail logout --profile <name> ile aynıdır.
  • Bir profil adı en fazla 64 harf, rakam, nokta, tire ve alt çizgiden oluşur.
  • profile use komutunun diğer adı profile switch. Etkin profili kaldırmak ya da oturumunu kapatmak hiçbir profili etkin bırakmaz ve oturum gerektiren sonraki komut sizi openemail profile use <name> komutuna yönlendirir.

Bir oturum hangi API ile konuşur

Kayıtlı bir profil oturum açtığı API'yi hatırlar ve kimlik bilgisi yalnızca oraya gönderilir. Başka bir kaynağı gösteren bir --base-url ya da OPENEMAIL_BASE_URL, hiçbir şey gönderilmeden komutu 2 çıkış koduyla durdurur ve o kaynağa ayrı bir profille nasıl oturum açılacağını söyler.

Terminal
openemail login --profile other --base-url https://api.example.comopenemail inbox --profile other
  • OPENEMAIL_API_KEY ya da --api-key ile verilen bir anahtar kayıtlı bir profil değildir; bu yüzden --base-url ya da OPENEMAIL_BASE_URL içindeki kaynağa, ikisi de ayarlı değilse https://api.openemail.uk adresine gider.
  • Kimlik bilgisi göndermeyen komutlar, hangi profil etkin olursa olsun --base-url ve OPENEMAIL_BASE_URL değerini izler: tek kullanımlık gelen kutuları, anahtar gerektirmeyen yöntemler, docs ve open.
  • Düz http, localhost, 127.0.0.1 ve ::1 dışındaki her kaynak için 2 çıkış koduyla reddedilir: API, web uygulaması, oturum açma, token ve iptal istekleri ve MCP sunucusu. Geri kalan her şey için https kullanın.
  • API kaynağının dışına çıkacak bir istek yolu, örneğin openemail api //example.com/x, hiçbir şey gönderilmeden 2 çıkış kodu ve invalid_path ile durur.

Her oturumun yapamadıkları

Bir tarayıcı oturumu sizin adınıza hareket eder, ancak hangi erişimi seçerseniz seçin bazı şeyler bir uygulamaya asla onaylanmaz:

  • API anahtarlarını yönetmek. keys:write ve keys:manage asla verilmez, bu yüzden anahtar oluşturmak, döndürmek ve iptal etmek için keys:manage sahibi bir API anahtarı ya da web uygulaması gerekir. openemail me rotate çağrıyı yaptığınız anahtarı döndürür, bu yüzden bir API anahtarı ister.
  • Faturalandırma ve çalışma alanlarının kendisi. Planlar, faturalar ve bir çalışma alanını oluşturmak, değiştirmek ya da silmek web uygulamasında kalır.
  • Ücretsiz adresiniz. Bir uygulama bir iş çalışma alanı için onaylanır ve ücretsiz adresi tutan kişisel çalışma alanı asla sunulmaz; API'nin izlediği kural da budur.
  • Üyeler ve roller, onay tüm çalışma alanını kapsamadıkça. members:write ve roles:write, bazı alan adları ya da adreslerle sınırlı bir onaydan çıkarılır.

Bir API anahtarının da kendi sınırı vardır. ai compose, ai summarize ve config dışındaki her openemail mcp komutu, tarayıcı oturumu gerektiren MCP sunucusundan geçer, bu yüzden bir anahtarla 4 çıkış koduyla durur ve nedenini söyler.

Doğrulama kodları

Bir tarayıcı oturumuyla birkaç değişiklik, web uygulamasında olduğu gibi önce bir doğrulama kodu ister. CLI ihtiyaç duyduğunda sorar: size e-postayla altı haneli bir kod gönderir ya da iki adımlı oturum açma açıksa kimlik doğrulayıcı uygulamanızdan bir kod veya yedek kodlarınızdan birini ister. Kod doğru olduğunda komut çalışır ve o oturumdan 60 dakika boyunca yeniden istenmez. Bir API anahtarından asla istenmez.

KomutKod ister
webhooks create, updateHer zaman
rules create, updateHer zaman
roles update, deleteHer zaman
members add, update, removeHer zaman
members grant-address, revoke-addressHer zaman
domains delete, delete-addressHer zaman
audiences deleteOluşturduğunuz bir kitle için
audiences emptyOluşturduğunuz, hâlâ kişi içeren bir kitle için
mcp call createRule, setRuleEnabledHer zaman
mcp call removeDomain, removeDomainAddressHer zaman
mcp call deleteAudience, emptyAudienceKarşılık gelen kitle komutu gibi
apiÇağırdığı işlem yukarıdakilerden biri olduğunda
Terminal
$ openemail webhooks create --url https://acme.com/hooks/openemailWe emailed a code to a•••@acme.com.Verification code: 482913Verified. You will not be asked again for 60 minutes.
  • E-postanın yeniden gönderilmesi için istemde r yazın. Yanlış bir kod kaç deneme kaldığını söyler.
  • Kod kabul edildikten sonra komut bir kez daha çalışır, asla iki kez değil.
  • --yes bir silmeyi onaylar ama asla bir kodu atlamaz.
  • Gözetimsiz çalışırken (--json ya da --no-input ile, CI'da ya da terminal olmadan) kodu kimse yazamaz, bu yüzden komut 4 çıkış koduyla durur ve hiçbir şeyi değiştirmez.
  • Bir kod 5 deneme hakkı verir ve beşinci yanlış denemeden sonra CLI yeni bir kod önerir. Her oturum saatte 5 ve günde 20 kod isteyebilir.
  • Bir oturum için 24 saat içinde on yanlış kod, o oturumun doğrulamasını duraklatır. CLI bu durumda ne zaman yeniden başlayacağını söyler ve başka bir kod önermeden 4 çıkış kodu ve step_up_paused ile durur; bunu açıklayan e-posta da uygulamanın adını verir.

Bir betik ya da yapay zekâ istemcisi hassas bir şey yapmadan önce openemail verify çalıştırın. Kodu şimdi ister ve sonraki 60 dakika boyunca o profildeki her komut, openemail mcp call ve yerel MCP köprüsü dahil, kodsuz çalışır.

Terminal
openemail verifyopenemail verify --statusopenemail verify --status --jsonopenemail verify --force

60 dakika tek bir oturuma aittir. Başka bir profilden ya da kendi başına oturum açmış bir yapay zekâ istemcisinden kendi kodu istenir ve oturumu kapatmak süreyi hemen bitirir. --force yeni bir kod ister ve yeni bir 60 dakika başlatır.

Süre sonu, oturum kapatma ve iptal

  • Bir tarayıcı oturumunun arkasındaki erişim tokenı bir saat geçerlidir. CLI süresi dolmadan onu yeniler ve yenisini kaydeder, bu yüzden bunu hiç fark etmezsiniz.
  • Her yenileme tokenı yalnızca bir kez çalışır. CLI yenisini koyduktan 30 saniyeden sonra kullanılan eski bir token, örneğin başka bir makinedeki bir config.json kopyasından, sunucunun o oturumu tamamen iptal etmesine yol açar; bu yüzden dosyayı kopyalamak yerine her makinede oturum açın.
  • Onay, onay sayfasında seçtiğiniz süre boyunca geçerlidir. Süre dolduğunda ya da uygulama Hesap → Bağlı uygulamalar altında kaldırıldığında CLI artık sizin adınıza hareket edemez ve openemail login komutunu yeniden çalıştırmanızı ister.
  • openemail logout bir tarayıcı oturumunu sunucuda iptal eder, bu da onu bağlı uygulamalardan kaldırır; ardından sunucuya ulaşılamasa bile onu bu cihazda unutur. --all her profilin oturumunu kapatır.
  • Bir API anahtarının oturumunu kapatmak onu yalnızca burada unutur. Anahtar, siz openemail keys revoke <id> ile ya da web uygulamasında iptal edene kadar çalışmaya devam eder.

Oturumların tutulduğu yer

Her şey ~/.openemail içinde ya da OPENEMAIL_CONFIG_DIR ile belirtilen klasörde durur. Klasörü yalnızca siz okuyabilirsiniz (0700), içindeki her dosya da öyledir (0600). Her dosya önce geçici bir dosyaya yazılır ve yerine yeniden adlandırılır, böylece bir çökme asla yarım bir dosya bırakmaz; her değişiklik de bir kilit dosyası altında yapılır, böylece yan yana çalışan komutlar asla bir profil kaybetmez.

DosyaNe tutar
config.jsonProfilleriniz: API anahtarları, erişim ve yenileme tokenları ve hangi profilin etkin olduğu
temp-mail.jsonBu CLI'nin oluşturduğu tek kullanımlık gelen kutuları, kutu tokenlarıyla birlikte
update-check.jsonnpm'e yeni bir sürümü en son ne zaman sorulduğu ve ne yanıt verdiği

Tokenlar ve anahtarlar yalnızca kullanıcınızın okuyabildiği dosyalarda düz metin olarak saklanır, bu yüzden klasöre bir SSH anahtarı gibi davranın. CLI'nin anlamlandıramadığı bir dosya asla sessizce oturum kapatılmış sayılmaz: yolu belirterek bir kez uyarır ve yenisini yazmadan önce yanına bir kopya (config.json.bak) bırakır. Hiç okuyamadığı bir dosya, örneğin izinleri yüzünden, komutu o dosyanın adını veren bir hatayla durdurur.

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.