Dijital düşünen ve kullanıcılarına en kusursuz deneyimi sunmak için kendi teknolojilerini üreten Wingie Enuygun Group’un Frontend Developer Bootcamp’i başvuruları başladı.
4 Haziran – 26 Haziran arası eğitim süreci ile Frontend kariyerine yön ver!
Web Hosting hesapları üzerinden herhangi bir ayar yapmadan SMTP e-posta gönderimi yapabilirken, office 365 e geçtiğimiz de güvenlik önlemlerinin fazla olması sebebi ile bu işlem bir kaç ayardan sonra yapılabilir durumda oluyor. Tabii ki bu ayarlar sizin güvenliğiniz için ama bazı zamanlar biraz fazla güvenli olabiliyor. Neyse sözü çok uzatmadan bu ayarlara bakalım.
Geliştirdiğiniz uygulamanızda SMTP e-posta gönderimi için office 365 hesabınızı kullanmak istediğiniz de öncelikle lisanslı bir adresinizi kullanmanız gerekiyor. Yani bir grup(group) ya da paylaşımı(shared) e-posta hesabı kullanarak atmak isteseniz bile kullanıcı adı ve şifre olarak lisanslı bir e-posta adresi bilgilerini yazmanız gerekecektir.
Bunları yapsanız da yine bazı hatalar alabilirsiniz. Bu hatalardan biri mesela bu;
535 5.7.139 Authentication unsuccessful, the request did not meet the criteria to be authenticated successfully.
Eğer doğru kullanıcı adı(yani e-posta adresi) ve şifresi elinizde varsa şu ayarları yaparak denerseniz e-posta gönderimini yapabilirsiniz. Ben denediğimde bu şekilde gönderilmesini sağladım.
E-posta göndereceğiniz lisanslı hesap adına tıklayarak ayarlarına gidin!
Manage email apps seçeneği ile açılan pencerede SMTP yi etkinleştirin!
Ardından yine kullanıcı listesine gelerek “Multi-factor authentication” ayarlarını kontrol ediyoruz. İlgili e-posta adresi için disabled olmalı.
Şimdi ise son olarak Azure Portal a giderek “Azure Active Directory” ayarlarında varsayılan olarak gelen “Enable Security defaults” (güvenlik varsayılanları) ayarını kapatmamız gerekiyor.
Aşağıdaki şekilde bunu yapabilirsiniz. Sebep olarak “other” diyip bir şeyler yazabilirsiniz. Ya da var olanlardan birini seçebilirsiniz, önemi yok!
Bu işlemin ardından ben Mailkit kullanarak NET Core proje de aşağıdaki kod ile SMTP e-posta gönderimini sağlayabildim. Umarım sizlere de faydalı olur.
GitHub üzerinde repolarınız ile çalışırken karşılaşabileceğiniz, özellikle Actions ya da Packages kullanıyorsanız, aşağıdaki gibi bir uyarı ile karşılaşmanız mümkün. Bende karşılaştığım için bu durumdan ve çözümünden bahsetmek iyi olabilir diye düşündüm.
GitHub Storage (GitHub Actions and Packages) Spending Limit Uyarısı Görünümü
Bu uyarı repolarınızda varsa ayarladığınız Actions ların çalışma sonrası oluşan publish(yayınlanmaya) hazır Artifact denen paketlerin birikmesinden dolayı oluşmaktadır.
Daha basit bir şekilde bu paketleri anlatmak gerekirse; bir projenizi publish etmek istediğinizde, bir klasöre publish edip dosyaları FTP ile(ya da farklı bir yöntemle) sunucuya atarsınız ya, işte o klasöre publish ettiğiniz dosya yığınları diyebiliriz.
GitHub üzerinde repolarınız da, Actions kavramını kullanıyorsanız her action workflow işleminin çalışması sonrası bu publish paketleri oluşup birikmektedir. Repo ayarlarında bu paketlerin maksimum saklanma süresi varsayılan olarak 90 gün olarak belirtildiğinden, 90 günde bir resetlenir. Bu süre uzun olduğundan biriken zamanla ciddi bir hacime ulaşır.
GitHub Free Plan Özellikleri
Yukardaki ekran görüntüsünde benim bireysel hesabımda(free plan) bu bahsettiğim hacim(GitHub Storage) 500 MB olduğundan sınırı geçmeniz durumunda bu uyarı çıkacaktır. Size “Hizmetin kesintiye uğramaması için ödeme yapmanızı önerecektir.” Eğer buna ihtiyacınız varsa ödeme yapabilir ve daha geniş bir Storage alanının keyfini sürebilirsiniz. Ya da Pro Plan a geçmekte size (yine ödemeli) daha fazla özellik ve yüksek değerler sağlayacaktır.
Sınırı Geçtiğimin Resmi
Bu aşamada Free Plan da kalarak bu durumu aşmak istiyorsanız. Mecburen bu Actions ların oluşturduğu artifacts ve log dosyalarının alıkonma(retention) gün süresini azaltmalısınız ki çok birikmesin ve ücretsiz 500 MB GitHub Storage ‘ınız dolmasın. Bunu maalesef repo larda tek tek yapmanız gerekiyor. Yani Actions ayarlı repoların “Settings” sayfasına girerek aşağıdaki menü den bu süreyi o repo için ayarlayabilirsiniz.
Repository de Artifact ve Log Alıkonma(Retention) Gün Ayarı
Uyarı hemen kaybolmayabilir. Bir süre beklemek gerekecek. GitHub sistemindeki bazı Job lar bu kontrolleri yapıp belirttiğiniz gün den eski artifact ve log dosyalarını silecektir. Tabii ki bir başka Job da Storage alanınızın hesabını yapacaktır. Belki bir başka job da uyarıyı kaldıracaktır. En kötü belirtilen gün(alana yazdığınız gün değeri) sonrasında gerekli sıfırlanma yapılacaktır. Kısacası bir şekilde Storage alanınızda yer açılınca uyarı kalkacaktır.
Burada dikkat edilmesi gereken, Retention gün değeri olarak yazılan gün süresi içinde çok fazla Actions çalışması artifact oluşumunu yine sağlayacağından alanınız hiç boşalamayabilir. Ona göre gerekirse 1 gün gibi bir değer vererek sıfırlama sürenizi kısa tutmak hızlı dolan Storage lar için yeterli çözüm olacaktır.
Fakat buna rağmen aşıyorsanız Free Plan size uygun olmayabilir. O zaman mecbur ödeme ya da farklı bir sistem üzerinden bu CI/CD süreçlerini konuşlandırabilirsiniz.
Codeove ile Bulut(Cloud) Yazılım Geliştirme ve Danışmanlık Hizmetleri
CODEOVE
Codeove; web tabanlı bulut yazılım çözümleri sunan ve bulut teknolojileri üzerine uzmanlaşmış bir yazılım ve danışmanlık firmasıdır. Tecrübemiz ile sizin için paket veya özel bulut çözümler üretiyor, hayata geçiriyoruz. Sürekli olarak güncel teknolojiler ile geliştirdiğimiz, yeni proje ve yazılımlarımız ile siz müşterilerimize alternatifli çözümler sunuyoruz.
Yazılım Danışmanlığı çözümlerimiz ile sizde şirketinizi dijitalleştirin
Son teknolojiler ile yazılım alt yapılarınızı oluşturabilir veya geliştirmenize yardımcı olabiliriz. Şirketiniz için geliştirmeyi düşündüğünüz yazılım projelerini birlikte hayata geçirebiliriz. Sizde doğru adımlarla projelerinizi hayata geçirmekte geç kalmayın.
Özel Yazılım Geliştirme çözümümüz ile projelerinizi ertelemeyin
Uzun yıllar edindiğimiz bilgi ve tecrübe ile son teknoloji yazılım ve sistem ekipmanlarıyla ve uzman kadromuz ile her zaman yanınızdayız. Geliştirmeyi planladığınız projenizi sizin istekleriniz doğrultusunda analiz ederek size özel bir çözüm ile hayata geçirmenize yardımcı olabiliriz.
Proje Analiz hizmetimiz ile projelerinizi birlikte analiz edebiliriz
Yazılım geliştirmeye başlamadan önceki aşamada, ilk olarak genel bir kapsam çıkartılması gerekir. Bu kapsamla birlikte yazılımın üzerinde çalışacağı donanım bileşenlerini de kapsayacak şekilde bir sistem analizi yapıyoruz. Ardından yazılım ve donanım gereksinimleri ana hatlarıyla belirlenince yazılım için proje planı çıkartarak yazılım gereksinimlerinizi çözümlemeye başlamanıza destek olabiliriz.
Proje ve Ekip Yönetimi hizmetimiz ile projelerinizi takip ediyor ve yönetiyoruz
Mevcut proje ve ekibinizi uygun metodolojileri kullanarak yönetiyoruz. İş süreçlerinizi doğru bir şekilde planlayarak doğru uygulamalarla takip ediyor ve planlı bir şekilde ilerletiyoruz. Anlık olarak proje süreçlerinizi görüntülenebilir ve raporlanabilir hale getiriyoruz.
Çözümlerimiz de Bulut Teknolojilerini Kullanıyoruz
Bulut teknolojisi ile fark yaratan iş modellerini sizlerle tanıştırıp sizleri geleceğe taşıyoruz. Şirketlerin bulut yazılımlar ile en doğru şekilde çalışmasını ve geliştirdiğimiz uygulamaların bulut teknolojisinin tüm imkanlarını kullanmasını sağlıyoruz.
Superpeer platformuna katılmış bulunuyorum. Bu platform üzerinden sunduğum bazı hizmetler için bire-bir(1:1) görüşme ayarlayabilirsiniz. Aşağıdaki adresten hesabıma ulaşabilirsiniz.
System.AggregateException:“Some services are not able to be constructed (Error while validating the service descriptor ‘ServiceType: Swashbuckle.AspNetCore.Swagger.ISwaggerProvider Lifetime: Transient ImplementationType: Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator‘: Unable to resolve service for type ‘Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider‘ while attempting to activate ‘Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator‘.) (Error while validating the service descriptor ‘ServiceType: Microsoft.Extensions.ApiDescriptions.IDocumentProvider Lifetime: Singleton ImplementationType: Microsoft.Extensions.ApiDescriptions.DocumentProvider‘: Unable to resolve service for type ‘Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider‘ while attempting to activate ‘Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator‘.)”
Çözüm ;
Özellikle RazorPages versiyonunda, services.AddMvc(); satırını ConfigureServices metodu içinde yazmanız gerekmektedir.