html
OAuth 2.0 ile E-Posta Gönderim Kurulumu (Google / Microsoft)
d7p OAuth 2.0 ile E-Posta Gönderim Kurulumu
Google (GOAUTH) ve Microsoft (MOAUTH) Yöntemleri
İlgili Tablo: UDEFT13 — Özel Kullanıcı Değerleri
Mail Gönderim Yöntemi: GOAUTH / MOAUTH
Bu doküman, DinamoPlus üzerinde bir kullanıcının e-postalarını
SMTP şifresi kullanmadan, güvenli OAuth 2.0 yöntemiyle
(Google veya Microsoft hesabı üzerinden) gönderebilmesi için gerekli tanımların nasıl
yapılacağını adım adım açıklar.
Kısaca Mantık
Kullanıcının e-posta hesabı Google ise Google Cloud Console, Microsoft ise
Azure / Entra tarafında bir "uygulama" (OAuth Client) oluşturulur. Buradan alınan
CLIENT_ID, CLIENT_SC (Client Secret) ve Microsoft için ek olarak
TENANT_ID değerleri, DinamoPlus içinde UDEFT13 tablosuna kaydedilir.
Ardından "Mail Servisine Bağlanarak Token Üret" butonu ile tek seferlik yetki verilir.
Not: sitename.com yerine kurumunuzun kullandığı alan adını yazınız.
2. Google (GOAUTH) Kurulumu
Google tarafında gönderim için yalnızca CLIENT_ID ve CLIENT_SC değerleri yeterlidir.
Bu değerleri Google Cloud Console üzerinden aşağıdaki adımlarla oluşturacağız.
Ön Koşul
Gönderim yapılacak Gmail / Google Workspace hesabına erişiminiz olmalı ve
console.cloud.google.com adresine bu hesapla giriş yapabilmelisiniz.
2.1. Google Cloud Console'da Proje Oluşturma
Google Cloud Console'a giriş yapınconsole.cloud.google.com adresine gidin.
Üst menüden yeni bir proje oluşturun veya var olan bir projeyi seçin (örnekte proje adı TestDeployment).
API'ler ve Servisler menüsüne girin
Sol üstteki menüden APIs and services → OAuth consent screen yolunu izleyin.
Sol menü → APIs and services → OAuth consent screen
"Get started" ile başlayın
Google Auth Platform henüz yapılandırılmamışsa Get started butonuna tıklayın.
Google Auth Platform → Get started
App Information (Uygulama Bilgileri)App name alanına bir uygulama adı girin (örn. d7pMail) ve
User support email olarak bir e-posta seçin. Next ile devam edin.
App name ve User support email doldurulur
Audience & Contact adımlarını tamamlayınAudience (hedef kitle) ve Contact Information adımlarını geçin.
Son adımda "I agree to the Google API services user data policy" kutusunu işaretleyip
Create butonuna basın.
Sözleşme onaylanır ve "Create" ile yapılandırma tamamlanır
Test kullanıcısı ekleyin (Testing modu)
Uygulama "Testing" yayın durumundayken yalnızca Test users listesindeki
hesaplar bağlanabilir. Sol menüden Audience sekmesine gidin, Test users
bölümünde + Add users butonuna basın ve gönderim yapılacak e-posta adresini ekleyin.
Audience → Test users → + Add users ile gönderim yapılacak hesap eklenir
Önemli
Test users listesine eklenmeyen bir hesapla token üretmeye çalışırsanız Google
"access blocked / bu uygulama doğrulanmadı" uyarısı verir ve bağlantı tamamlanamaz.
İstemci türünü ve adres bilgilerini girin
Aşağıdaki alanları doldurun:
Application type
Web application
Name
Örn. d7pMail
Authorised JavaScript origins
https://sitename.com
Authorised redirect URIs
https://sitename.com/home/GoogleOAuthCallback
Create butonuna basın.
Web application, JavaScript origins ve redirect URI girilir
ÖnemliAuthorised redirect URIs alanı mutlaka
/home/GoogleOAuthCallback ile bitmelidir. Aksi halde Google yönlendirme sonrası
"redirect_uri_mismatch" hatası verir.
Client ID'yi not alın
İstemci oluşturulunca Client ID ekranda gösterilir. Bu değer daha sonra
UDEFT13'te CLIENT_ID olarak kullanılacaktır. İsterseniz Download JSON ile indirebilirsiniz.
Oluşan Client ID kopyalanır
2.4. Client Secret Üretme
Credentials menüsüne gidin
Sol menüden APIs and services → Credentials yolunu izleyin.
APIs and services → Credentials
Mevcut istemciyi açın (veya yeni oluşturun)
Oluşturduğunuz d7pMail istemcisine tıklayın. (Gerekirse
Create credentials → OAuth client ID ile yeni de oluşturabilirsiniz.)
Create credentials → OAuth client ID seçeneği
"Add secret" ile Client Secret oluşturun
İstemci detay ekranında Client secrets bölümünden + Add secret butonuna basın.
Üretilen gizli anahtar (Client secret) daha sonra UDEFT13'te CLIENT_SC olarak kullanılacaktır.
Client secrets → + Add secret
Dikkat
Client secret değeri yalnızca oluşturulduğu anda tam olarak görüntülenebilir. Bu değeri
oluşturur oluşturmaz güvenli bir yere kopyalayın; sonradan tekrar görüntülenemez.
2.5. Değerleri DinamoPlus'a (UDEFT13) Girme
DinamoPlus'ta ilgili kullanıcı için Kullanıcı / Planlama Rol Tanımları → Özel Kullanıcı Değerleri
(UDEFT13) sekmesine gidin ve aşağıdaki satırları ekleyin:
Özel Kullanıcı Kodu
Özel Değer
CLIENT_ID
Google'dan alınan Client ID
CLIENT_SC
Google'dan alınan Client Secret
Google için UDEFT13'e CLIENT_ID ve CLIENT_SC eklenir, ardından "Kaydet" denir
2.6. Token Üretme (Hesabı Bağlama)
E-Posta Tanımları ekranını açın
Kullanıcının E-Posta Tanımları bölümünde "E-Posta Gönderebilir" kutusunu işaretleyin,
E-Posta adresini girin ve Mail Gönderim Yöntemi olarak
GOAUTH - Google Oauth 2.0 Yöntemi İle Gönderim seçin.
Mail Gönderim Yöntemi olarak GOAUTH seçilir
"Mail Servisine Bağlanarak Token Üret" butonuna basın
Açılan Google penceresinde gönderim yapılacak hesabı seçip izinleri onaylayın.
Google hesabı seçilir ve uygulamaya izin verilir
İşlemi tamamlayın
Yetkilendirme başarılı olduğunda "Google OAuth token received." mesajı görüntülenir.
Tamam butonuna basın; token sistem tarafından kaydedilir ve artık kullanıcı
Google OAuth ile e-posta gönderebilir.
Başarılı yetkilendirme sonrası görüntülenen onay ekranı
Tamamlandı
Google (GOAUTH) kurulumu bittikten sonra test amaçlı bir e-posta göndererek yapılandırmayı doğrulayın.
3. Microsoft (MOAUTH) Kurulumu
Microsoft (Microsoft 365 / Outlook) hesapları için gönderimde, Google'dan farklı olarak
CLIENT_ID ve CLIENT_SC değerlerine ek olarak TENANT_ID
değeri de gereklidir. Bu değerleri Azure Portal (Microsoft Entra ID) üzerinden
aşağıdaki adımlarla oluşturacağız.
Ön Koşulportal.azure.com adresine, uygulama kaydı yapma yetkisine sahip
bir hesapla giriş yapabilmelisiniz.
3.1. Microsoft Entra ID'ye Giriş
Azure Portal'a giriş yapınportal.azure.com adresine gidin ve
Azure services alanından Microsoft Entra ID hizmetine tıklayın.
Azure services → Microsoft Entra ID
3.2. Uygulama Kaydı (App registration)
Yeni uygulama kaydı başlatın
Entra ID Overview ekranında üstteki + Add menüsünden
App registration seçeneğine tıklayın.
Overview → + Add → App registration (bu ekranda Tenant ID de görüntülenir)
Uygulama bilgilerini girin
Açılan Register an application formunda:
Name
Örn. DinamoERP Mail Service
Supported account types
Genellikle Single tenant only (kurum içi kullanım)
Redirect URI
Tür: Web — Adres: https://sitename.com/home/MicrosoftOAuthCallback
Alanları doldurup Register butonuna basın.
Name, Supported account types ve Redirect URI (Web) girilir
Önemli
Redirect URI türü Web olmalı ve adres mutlaka
/home/MicrosoftOAuthCallback ile bitmelidir.
3.3. Client Secret Oluşturma
Certificates & secrets ekranına gidin
Oluşturulan uygulamanın sol menüsünde Manage → Certificates & secrets yolunu izleyin.
Manage → Certificates & secrets
Yeni bir client secret ekleyin+ New client secret ile bir açıklama (Description) girin ve süre (Expires) seçip
Add butonuna basın.
Açıklama ve süre seçilerek client secret oluşturulur
Dikkat
Oluşan secret'in Value (değer) sütunundaki metni hemen kopyalayın. Bu değer
yalnızca oluşturulduğu anda görüntülenir ve daha sonra tekrar görüntülenemez. UDEFT13'te
CLIENT_SC olarak bu Value değeri kullanılır (Secret ID değil!).
3.4. API İzinlerini Tanımlama
API permissions ekranına gidin ve izinleri ekleyin
Sol menüden API permissions bölümüne girin. + Add a permission →
Microsoft Graph → Delegated permissions yolundan aşağıdaki izinleri ekleyin:
Mail.Send
Kullanıcı adına mail gönderme
User.Read
Oturum açma ve kullanıcı profilini okuma
Ardından Grant admin consent for <kurum> butonuna basarak yönetici onayını verin;
Status sütununun yeşil (Granted) olduğundan emin olun.
Microsoft Graph → Mail.Send ve User.Read izinleri eklenir ve onaylanır
3.5. Gerekli Bilgileri Toplama
Uygulamanın Overview sayfasındaki Essentials bölümünden aşağıdaki
değerleri kopyalayın:
Azure'daki Alan
UDEFT13 Kodu
Application (client) ID (Overview)
CLIENT_ID
Directory (tenant) ID (Overview)
TENANT_ID
Client Secret Value (3.3'te oluşturulan)
CLIENT_SC
Overview → Essentials: Application (client) ID ve Directory (tenant) ID buradan alınır
3.6. Değerleri DinamoPlus'a (UDEFT13) Girme
İlgili kullanıcı için Kullanıcı / Planlama Rol Tanımları → Özel Kullanıcı Değerleri
(UDEFT13) sekmesine gidin ve aşağıdaki satırları ekleyip kaydedin:
Özel Kullanıcı Kodu
Özel Değer
CLIENT_ID
Application (client) ID
CLIENT_SC
Client Secret Value
TENANT_ID
Directory (tenant) ID
REDIR_URI
https://sitename.com/home/MicrosoftOAuthCallback
Önemli
Microsoft için REDIR_URI satırının UDEFT13'e girilmesi zorunludur ve değeri,
Azure uygulama kaydındaki Redirect URI ile birebir aynı olmalıdır
(https://sitename.com/home/MicrosoftOAuthCallback).
Microsoft için UDEFT13'e CLIENT_ID, CLIENT_SC, TENANT_ID ve REDIR_URI satırları eklenir
3.7. Token Üretme (Hesabı Bağlama)
E-Posta Tanımları'nda MOAUTH seçin
Kullanıcının E-Posta Tanımları bölümünde "E-Posta Gönderebilir" kutusunu
işaretleyin, E-Posta adresini girin ve Mail Gönderim Yöntemi olarak
MOAUTH - Microsoft Oauth 2.0 Yöntemi İle Gönderim seçin.
"Mail Servisine Bağlanarak Token Üret" butonuna basın
Açılan Microsoft penceresinde gönderim yapılacak hesabı seçip izinleri onaylayın. Yetkilendirme
başarılı olduğunda pencere kapanır ve token sistem tarafından kaydedilir.
Tamamlandı
Microsoft (MOAUTH) kurulumu bittikten sonra test amaçlı bir e-posta göndererek yapılandırmayı doğrulayın.
4. Sık Karşılaşılan Sorunlar
Hata / Belirti
Olası Neden ve Çözüm
redirect_uri_mismatch
Google/Azure'daki redirect URI ile sistemdeki adres birebir aynı değil. Adresin sonunun
/home/GoogleOAuthCallback (veya Microsoft için /home/MicrosoftOAuthCallback)
olduğundan ve alan adının doğru olduğundan emin olun.
"Authorization code cannot be empty."
Yetkilendirme penceresi iptal edilmiş veya izin verilmemiş. "Token Üret" adımını tekrar başlatıp
hesabı seçerek izinleri onaylayın.
Token üretildi ama mail gitmiyor
UDEFT13'teki CLIENT_ID / CLIENT_SC (Microsoft için ayrıca TENANT_ID)
değerlerinin boşluksuz ve doğru kopyalandığını, E-Posta adresinin gönderim yapılan hesapla aynı olduğunu kontrol edin.
Google "access blocked" / test kullanıcısı uyarısı
OAuth consent screen "Testing" modunda ise gönderim yapılacak hesabın Test users
listesine eklenmesi gerekir.
Bu doküman DinamoPlus / d7p e-posta OAuth kurulumu içindir. — Google (GOAUTH) ve Microsoft (MOAUTH) bölümleri tamamlanmıştır.