﻿
{"id":27312,"date":"2024-11-15T05:27:56","date_gmt":"2024-11-15T05:27:56","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=27312"},"modified":"2024-11-15T05:27:56","modified_gmt":"2024-11-15T05:27:56","slug":"asp-net-core-amazon-sessimple-email-service-ile-e-posta-gonderimi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-amazon-sessimple-email-service-ile-e-posta-gonderimi\/","title":{"rendered":"Asp.NET Core &#8211; Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde, AWS taraf\u0131ndan bir e-posta g\u00f6nderim servisi olarak sunulan <em>Amazon SES(Simple Email Service)<\/em> ile kolayca yaz\u0131l\u0131mlar\u0131m\u0131zdaki e-posta g\u00f6nderme ihtiyac\u0131n\u0131 nas\u0131l giderebilece\u011fimizi inceleyecek ve bir\u00e7ok y\u00f6ntemin yan\u0131nda, bir Asp.NET Core uygulamas\u0131 \u00fczerinden pratiksel tecr\u00fcbede bulunup, \u00f6\u011frenece\u011fiz. O halde buyurun ba\u015flayal\u0131m&#8230;<\/p>\n<p>Biliyorsunuz ki; bir yaz\u0131l\u0131mda kullan\u0131c\u0131larla ba\u011flant\u0131 kurmak, yer yer \u00f6nemli bildirimlerde bulunmak ve m\u00fc\u015fterilerimizle yeni geli\u015fmelere dair etkili bir \u015fekilde ileti\u015fimde kalmak olduk\u00e7a \u00f6nem arz etmekte ve bu s\u00fcre\u00e7te e-posta ileti\u015fimi de m\u00fchim rol alabilmektedir. \u00d6zellikle e-ticaret ya da sat\u0131\u015f\/pazarlama sekt\u00f6rlerinde hizmet veren yaz\u0131l\u0131mlarda bu m\u00fchim rol\u00fcn \u00fczerine yo\u011fun bir \u015fekilde e-posta trafi\u011fi s\u00f6z konusu olabilmekte, ee bu da son derecede \u00f6l\u00e7eklenebilir ve uygun maliyetlerde bir e-posta servisi gere\u011fi duyurabilmektedir. B\u00f6yle bir ihtiyaca istinaden piyasa da \u00f6zel ya da cloud tabanl\u0131 bir\u00e7ok \u00e7\u00f6z\u00fcm getirebilme imkan\u0131 s\u00f6z konusuyken biryandan da AWS taraf\u0131ndan s\u0131rf bu i\u015fe odakl\u0131 geli\u015ftirilmi\u015f Amazon SES&#8217;i g\u00fczel bir alternatif olarak de\u011ferlendirebilir ve yaz\u0131l\u0131mlar\u0131m\u0131zdaki e-posta yeteneklerini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabiliriz.<\/p>\n<h4>Amazon SES(Simple Email Service) Nedir?<\/h4>\n<p>Amazon SES(Simple Email Service), AWS taraf\u0131nda sunulan bir e-posta g\u00f6nderim servisidir. Bu servis ile kullan\u0131c\u0131lara toplu e-postalar g\u00f6nderilebilmekte ya da pazarlama ve bildirim gibi farkl\u0131 t\u00fcrlerde e-posta i\u015flemleri kolayca ger\u00e7ekle\u015ftirilebilmektedir. Amazon SES&#8217;de e-postalar\u0131n g\u00fcvenli bir \u015fekilde teslim edilebilmesi i\u00e7in <em>high deliverability\/email deliverability<\/em>(y\u00fcksek teslim edilebilirlik) oranlar\u0131 hedeflenmi\u015ftir ve bunun i\u00e7in de \u00e7e\u015fitli e-posta do\u011frulama, g\u00fcvenlik ve spam koruma \u00f6zellikleri ile donat\u0131lm\u0131\u015ft\u0131r.<\/p>\n<p>Amazon SES&#8217;in ba\u015fl\u0131ca \u00f6zelliklerini s\u0131ralamam\u0131z gerekirse e\u011fer;<\/p>\n<ul>\n<li><strong><em>Kolay Entegrasyon<\/em><\/strong><br \/>\nAmazon SES, SMTP veya API ile uygulamalara kolayca entegre edilebilir ve bu sayede h\u0131zl\u0131ca e-posta aksiyonlar\u0131 al\u0131nabilir.\n<\/li>\n<li><strong><em>\u00d6l\u00e7eklenebilirlik<\/em><\/strong><br \/>\nAmazon SES, \u00e7ok y\u00fcksek hacimli e-posta g\u00f6nderimleri i\u00e7in kolayca \u00f6l\u00e7eklenebilir bir yap\u0131 sunmakta ve b\u00f6ylece de toplu pazarlama veya bildirimde bulunma s\u00fcre\u00e7leri i\u00e7in ideal bir ortam sa\u011flamaktad\u0131r.\n<\/li>\n<li><strong><em>Etkin Maliyet<\/em><\/strong><br \/>\nG\u00f6nderilen e-posta say\u0131s\u0131na g\u00f6re \u00fccretlendirme yap\u0131lmaktad\u0131r. B\u00f6ylece de maliyetler optimize edilebilmekte ve herhangi bir \u00f6n veya asgari \u00fccret \u00f6demeksizin yaln\u0131zca g\u00f6nderilen e-postalar \u00fczerinden \u00f6deme yap\u0131lacak \u015fekilde bir avantaj sa\u011flamaktad\u0131r.\n<\/li>\n<li style=\"color:red;\"><strong><em>Raporlama *<\/em><\/strong><br \/>\nAmazon SES, g\u00f6nderilen e-postalar hakk\u0131nda a\u00e7\u0131lma, t\u0131klama ve geri d\u00f6nme gibi olduk\u00e7a kritik metrikler sunmakta ve b\u00f6ylece e-posta performanslar\u0131n\u0131 izleyerek yeni stratejilere b\u00fcy\u00fck katk\u0131larda bulunmaktad\u0131r!\n<\/li>\n<li><strong><em>Y\u00fcksek Teslim Edilebilirlik<\/em><\/strong><br \/>\nAmazon&#8217;un g\u00fcvenli altyap\u0131s\u0131 sayesinde e-postalar genellikle hedeflenen al\u0131c\u0131lara h\u0131zl\u0131 ve g\u00fcvenilir \u015fekilde ula\u015ft\u0131r\u0131lmaktad\u0131r.\n<\/li>\n<\/ul>\n<blockquote><p><em style=\"color:green;\">\u00d6zellikle e-ticaret gibi finansal yaz\u0131l\u0131mlarda marka itibar\u0131n\u0131 korumak i\u00e7in Amazon SES&#8217;den b\u00fcy\u00fck istifade edilebilir.<\/em><\/p><\/blockquote>\n<p><strong><em>Peki Amazon SES&#8217;in fiyatland\u0131rma politikas\u0131 nas\u0131ld\u0131r?<\/em><\/strong><br \/>\n\u00d6nceki sat\u0131rlarda bahsedildi\u011fi \u00fczere Amazon SES kulland\u0131k\u00e7a \u00f6deme modelini benimsemektedir. Ancak <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-web-api-uygulamasini-amazon-ec2de-host-etme\/\" rel=\"noopener\" target=\"_blank\">EC2<\/a> instance&#8217;\u0131nda \u00e7al\u0131\u015fan uygulamalar\u0131n\u0131z i\u00e7in her 24 saatte bir 200 e-posta&#8217;ya kadar \u00fccretsiz bir c\u00f6mertli\u011fe sahiptir. Bunun d\u0131\u015f\u0131nda neredeyse \u00e7o\u011fu durumda hi\u00e7bir \u00fccret \u00f6denmedi\u011fini s\u00f6yleyebiliriz. Yine de takriben bir hesap yapmam\u0131z gerekirse e\u011fer g\u00f6nderilen veya al\u0131nan her 1000 e-posta i\u00e7in <em>0,10$<\/em> gibi bir mebla\u011f s\u00f6z konusudur diyebiliriz. Ayr\u0131ca g\u00f6nderilen her ekstra GB boyutundaki veri i\u00e7in yakla\u015f\u0131m olarak da <em>0,12$<\/em> ek \u00fccret al\u0131nmaktad\u0131r.<\/p>\n<p><strong>Amazon SES ile e-posta g\u00f6ndermenin yollar\u0131 nelerdir?<\/strong><br \/>\nAmazon SES ile e-posta g\u00f6ndermenin a\u015fa\u011f\u0131daki gibi birka\u00e7 farkl\u0131 yolu mevcuttur;<\/p>\n<ul>\n<li>AWS Management Console kullanarak g\u00f6nderilebilir,<\/li>\n<li>AWS CLI Tool ve JSON payload kullanarak g\u00f6nderilebilir,<\/li>\n<li>SMTP kullanarak g\u00f6nderilebilir,<\/li>\n<li>.NET &#8211; AWS SDK kullanarak g\u00f6nderilebilir.<\/li>\n<\/ul>\n<p>\u015eimdi e-posta g\u00f6nderimini bu y\u00f6ntemlerle tek tek inceleyebilmek i\u00e7in \u00f6ncelikle AWS Management Console \u00fczerinden Amazon SES&#8217;i ke\u015ffedelim ve ard\u0131ndan mail g\u00f6nderim s\u00fcre\u00e7lerinde kullanaca\u011f\u0131m\u0131z bir identity olu\u015fturmay\u0131 ele alal\u0131m;<\/p>\n<h4>AWS Management Console \u00dczerinden Amazon SES&#8217;i Ke\u015ffedelim ve Sender Identity Olu\u015ftural\u0131m<\/h4>\n<p>\u00d6ncelikle AWS Management Console \u00fczerinden Amazon SES&#8217;i a\u00e7al\u0131m;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"769\" height=\"222\" class=\"aligncenter size-full wp-image-27317\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi.png 769w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-300x87.png 300w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/a>E\u011fer ilk defa Amazon SES servisine giri\u015f yap\u0131yorsan\u0131z a\u015fa\u011f\u0131daki gibi ekranla kar\u015f\u0131la\u015facaks\u0131n\u0131z;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-1.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"1387\" height=\"419\" class=\"aligncenter size-full wp-image-27318\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-1.png 1387w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-1-300x91.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-1-1024x309.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-1-768x232.png 768w\" sizes=\"auto, (max-width: 1387px) 100vw, 1387px\" \/><\/a>Burada &#8216;Get started&#8217; diyerek devam edelim.<\/p>\n<p>\u015eimdi e-posta g\u00f6nderebilmek i\u00e7in \u00f6ncelikle bir g\u00f6nderici kimli\u011fi(sender identity) olu\u015fturmam\u0131z ve ard\u0131ndan bunu do\u011frulamam\u0131z gerekmektedir. Bunun i\u00e7in soldaki men\u00fcden &#8216;Identities&#8217; sekmesine gelelim ve a\u00e7\u0131lan sayfada &#8216;Create identity&#8217; butonuna t\u0131klayal\u0131m.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"1831\" height=\"349\" class=\"aligncenter size-full wp-image-27319\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2.png 1831w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2-300x57.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2-1024x195.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2-768x146.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-2-1536x293.png 1536w\" sizes=\"auto, (max-width: 1831px) 100vw, 1831px\" \/><\/a>Amazon SES \u00fczerinden e-posta g\u00f6ndermek i\u00e7in olu\u015fturulacak identity; bir domain, sub-domain yahut gmail gibi harici e-posta adresi olabilir. Bizler bu \u00f6rne\u011fimizde Amazon SES&#8217;teki identity&#8217;i do\u011frulamak i\u00e7in \u015fahsi e-posta adresimi kullanaca\u011f\u0131z.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-3.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"808\" height=\"648\" class=\"aligncenter size-full wp-image-27320\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-3.png 808w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-3-300x241.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-3-768x616.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><\/a>Burada verilen e-posta adresine do\u011frulama mailinin g\u00f6nderilece\u011fini ve bu nedenle eri\u015filebilir bir adres yaz\u0131lmas\u0131 gerekti\u011fini unutmay\u0131n\u0131z. Velhas\u0131l, identity&#8217;i olu\u015ftural\u0131m ve belirtilen e-posta adresimizi kontrol edelim.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-4.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"1515\" height=\"493\" class=\"aligncenter size-full wp-image-27321\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-4.png 1515w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-4-300x98.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-4-1024x333.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-4-768x250.png 768w\" sizes=\"auto, (max-width: 1515px) 100vw, 1515px\" \/><\/a>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere do\u011frulama ba\u011flant\u0131s\u0131 i\u00e7eren bir mail alm\u0131\u015f bulunuyoruz. Olu\u015fturdu\u011fumuz kimli\u011fi do\u011frulamak i\u00e7in mail&#8217;de ki linke t\u0131klayal\u0131m ve ard\u0131ndan Amazon SES \u00fczerinden identity&#8217;i kontrol edelim.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-5.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"502\" height=\"252\" class=\"aligncenter size-full wp-image-27322\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-5.png 502w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-5-300x151.png 300w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/a>Evet, art\u0131k identity olu\u015fturdu\u011fumuza g\u00f6re istedi\u011fimiz y\u00f6ntemle mail g\u00f6nderebiliriz \ud83d\ude42<\/p>\n<h5>AWS Management Console Kullanarak E-Posta G\u00f6nderimi<\/h5>\n<p>AWS Management Console \u00fczerinden Amazon SES mailbox sim\u00fclat\u00f6r\u00fc arac\u0131l\u0131\u011f\u0131yla uygulamam\u0131z\u0131n farkl\u0131 e-posta g\u00f6nderme senaryolar\u0131n\u0131 nas\u0131l i\u015fledi\u011fini test edebiliriz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-6.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"1523\" height=\"301\" class=\"aligncenter size-full wp-image-27324\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-6.png 1523w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-6-300x59.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-6-1024x202.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-6-768x152.png 768w\" sizes=\"auto, (max-width: 1523px) 100vw, 1523px\" \/><\/a>Bunun i\u00e7in yukar\u0131daki gibi &#8216;Send test email&#8217; butonuna t\u0131klayal\u0131m ve a\u015fa\u011f\u0131daki gibi gerekli yap\u0131land\u0131rmalarda bulunarak maili g\u00f6nderelim;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-7.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"716\" height=\"840\" class=\"aligncenter size-full wp-image-27325\" \/><\/a>Burada g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere basit bir test mesaj\u0131 olu\u015fturmak i\u00e7in &#8216;Formatted&#8217; sekmesi \u00fczerinden &#8216;Custom&#8217; bir senaryo belirliyoruz. Senaryoyu &#8216;Custom&#8217; se\u00e7memizin sebebi \u00f6zel bir al\u0131c\u0131 belirtmemize olanak sa\u011flamas\u0131d\u0131r. Ben \u00e7ok fazla mail kurcalamayal\u0131m diye g\u00f6nderenle alan maillerini ayn\u0131 belirlemi\u015f bulunuyorum. Ayr\u0131ca test s\u00fcrecinde HTML kullanan veya ekler i\u00e7eren daha karma\u015f\u0131k mail&#8217;leri de deneyebilmek i\u00e7in &#8216;Raw&#8217; sekmesi \u00fczerinden de y\u00fcr\u00fcyebilirsiniz. Velhas\u0131l, bu \u015fekilde bir yap\u0131land\u0131rmadan sonra posta kutumuzu kontrol edersek a\u015fa\u011f\u0131daki gibi ilgili mailin geldi\u011fini g\u00f6zlemlemi\u015f olaca\u011f\u0131z;<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-8.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"381\" height=\"143\" class=\"aligncenter size-full wp-image-27327\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-8.png 381w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-8-300x113.png 300w\" sizes=\"auto, (max-width: 381px) 100vw, 381px\" \/><\/a><\/p>\n<h5>AWS CLI ile E-Posta G\u00f6nderimi<\/h5>\n<p>AWS CLI kullanarak da e-posta g\u00f6nderebilmekteyiz. Bunun i\u00e7in tabi ki de AWS CLI&#8217;\u0131n y\u00fckl\u00fc olmas\u0131 gerekmektedir ki zaten sizde y\u00fckl\u00fc oldu\u011funa inan\u0131yorum. Hani ola ki y\u00fckl\u00fc de\u011filse tee zaman\u0131nda klavyeye ald\u0131\u011f\u0131m <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-aws-s3-ile-dosya-islemleri-gerceklestirme-upload-download-delete-files\/\" rel=\"noopener\" target=\"_blank\">\u015furadaki<\/a> yaz\u0131da ilgili ba\u015fl\u0131k alt\u0131nda anlat\u0131ld\u0131\u011f\u0131 gibi y\u00fcklemeyi ger\u00e7ekle\u015ftirebilir ve buradaki ad\u0131mlara haz\u0131rbulunu\u015flulu\u011funuzu sa\u011flayabilirsiniz.<\/p>\n<p>Velhas\u0131l, AWS CLI \u00fczerinden e-postay\u0131 a\u015fa\u011f\u0131daki talimat e\u015fli\u011finde g\u00f6nderebiliriz;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\naws ses send-email --from &#x5B;g\u00f6nderici mail] --to &#x5B;al\u0131c\u0131 mail] --text &quot;...mail i\u00e7eri\u011fi...&quot; --subject &quot;...konu...&quot;\r\n<\/pre>\n<\/div>\n<p>Misal olarak;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\naws ses send-email --from gyildizmail@gmail.com --to gyildizmail@gmail.com --text &quot;doldur be meyhaneci, bo\u015f kalmas\u0131n kadehim...&quot; --subject &quot;Doldur Doldur Doldur Doldur Doldurrrrr Gitsinnn&quot;\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-9.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-9.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"1882\" height=\"75\" class=\"aligncenter size-full wp-image-27329\" \/><\/a><\/p>\n<h5>Asp.NET Core \u0130le E-Posta G\u00f6nderimi<\/h5>\n<p>\u015eimdiye kadar her ne kadar biz yaz\u0131l\u0131mc\u0131lar a\u00e7\u0131s\u0131ndan pekte dikkat \u00e7ekmesede Amazon SES \u00fczerinden e-posta g\u00f6ndermenin iki kolay yolunu de\u011ferlendirmi\u015f bulunuyoruz. \u015eimdi esas olarak Amazon SES ile birlikte Asp.NET Core uygulamalar\u0131ndan nas\u0131l e-posta g\u00f6nderebilece\u011fimizi inceleyece\u011fiz.<\/p>\n<p>Tabi tam da bu noktada <em><strong>la hoca, daha SMTP ve .NET \u2013 AWS SDK kullanarak e-posta g\u00f6ndermeyi incelemedik!<\/strong><\/em> dedi\u011finizi duyar gibiyim \ud83d\ude42 Tamammm sakin&#8230; Bilmeniz gereken Amazon SES ile Asp.NET Core&#8217;dan e-posta g\u00f6ndermenin programatik olarak iki yolu vard\u0131r. Bu yollarda zaten geriye kalan bu iki teknikten ibarettir \ud83d\ude09 \u015eimdi \u00f6ncelikle SMTP \u00fczerinden Asp.NET Core&#8217;da e-posta g\u00f6ndermeyi inceleyelim. Ard\u0131ndan .NET &#8211; AWS SDK ile g\u00f6nderimi de\u011ferlendirece\u011fiz.<\/p>\n<h6>SMTP \u00dczerinden E-Posta G\u00f6nderimi<\/h6>\n<p>SMTP ile e-posta g\u00f6nderebilmek i\u00e7in uygulamam\u0131zda kullan\u0131c\u0131 ad\u0131, \u015fifre, port ve server bilgileri gibi ihtiya\u00e7 olan verileri koordine edecek olan .NET i\u00e7in geli\u015ftirilmi\u015f <a href=\"https:\/\/www.nuget.org\/packages\/MailKit\/\" rel=\"noopener\" target=\"_blank\">Mailkit<\/a> paketin y\u00fcklenmesi gerekmektedir. Bunu birazdan y\u00fckleyece\u011fiz. Bunun i\u00e7in \u00f6ncelikle SMTP Credentials olu\u015fturmam\u0131z gerekmektedir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-10.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"337\" height=\"228\" class=\"alignleft size-full wp-image-27333\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-10.png 337w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-10-300x203.png 300w\" sizes=\"auto, (max-width: 337px) 100vw, 337px\" \/><\/a>Haliyle bunun i\u00e7in de yandaki g\u00f6rselde oldu\u011fu gibi soldaki men\u00fc \u00fczerinden &#8216;SMTP settings&#8217; sekmesine t\u0131klayal\u0131m ve a\u00e7\u0131lan sayfadan &#8216;Create SMTP credentials&#8217; butonuna t\u0131klayarak kullan\u0131c\u0131 ayr\u0131nt\u0131lar\u0131na gelelim. Burada a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnden de anla\u015f\u0131laca\u011f\u0131 \u00fczere uygulamam\u0131z taraf\u0131ndan host adresi olarak kullan\u0131lacak olan bir SMTP endpoint sunulmaktad\u0131r.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-11.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"1521\" height=\"434\" class=\"aligncenter size-full wp-image-27334\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-11.png 1521w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-11-300x86.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-11-1024x292.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-11-768x219.png 768w\" sizes=\"auto, (max-width: 1521px) 100vw, 1521px\" \/><\/a>Velhas\u0131l, yeni bir kimlik bilgisi olu\u015fturmak i\u00e7in &#8216;Create SMTP credentials&#8217; butonuna t\u0131klad\u0131\u011f\u0131m\u0131zda yeni bir kullan\u0131c\u0131 olu\u015fturulabilmesi i\u00e7in AWS IAM servisine y\u00f6nlendirme ger\u00e7ekle\u015ftirilecektir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-12.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"417\" height=\"740\" class=\"aligncenter size-full wp-image-27335\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-12.png 417w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-12-169x300.png 169w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\" \/><\/a><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-13.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-13.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"373\" height=\"377\" class=\"alignleft size-full wp-image-27336\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-13.png 373w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-13-297x300.png 297w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-13-80x80.png 80w\" sizes=\"auto, (max-width: 373px) 100vw, 373px\" \/><\/a>Bu y\u00f6nlendirme neticesinde olu\u015fturulacak kullan\u0131c\u0131 bilgileri g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere hali haz\u0131rda gelmektedir. Tabi sizler isterseniz kullan\u0131c\u0131 ad\u0131na istedi\u011finiz \u015fekilde m\u00fcdahale edebilir ya da ufak tefek yetki \u00f6zelle\u015ftirmelerinde bulunabilirsiniz. Ben hi\u00e7 dokunmaks\u0131z\u0131n direkt olarak kullan\u0131c\u0131y\u0131 olu\u015fturmay\u0131 tercih ediyorum. Ve nihai olarak SMTP credentials&#8217;a dair bilgileri yandaki g\u00f6rselde oldu\u011fu gibi elde ediyorum. Bu bilgileri birazdan uygulamada kullanabilmek i\u00e7in SMTP endpoint&#8217;i ile birlikte elimizin alt\u0131nda bulundurmam\u0131zda fayda vard\u0131r.<\/p>\n<p>Evet, SMTP kimlik bilgileri haz\u0131r oldu\u011funa g\u00f6re art\u0131k uygulamaya odaklanabiliriz. Tabi uygulama seviyesinde ilk olarak bi ka\u00e7 sat\u0131r \u00f6nce bahsetti\u011fim MailKit paketini y\u00fckleyerek devam edelim.<\/p>\n<div style=\"text-align:center;color:red;\">\n<code><a href=\"https:\/\/www.nuget.org\/packages\/MailKit\/2.15.0\" rel=\"noopener\" target=\"_blank\">Install-Package MailKit<\/a><\/code><br \/>\n<code><a href=\"https:\/\/www.nuget.org\/packages\/MimeKit\" rel=\"noopener\" target=\"_blank\">Install-Package MimeKit<\/a><\/code>\n<\/div>\n<p>Bu k\u00fct\u00fcphaneleri k\u0131saca tan\u0131tmak gerekirse e\u011fer; MailKit, e-posta g\u00f6nderme ve alma i\u015flemleri i\u00e7in kullan\u0131l\u0131rken, MimeKit ise e-posta i\u00e7eri\u011fi olu\u015fturmak i\u00e7in MailKit ile birlikte kullan\u0131lmaktad\u0131r.<\/p>\n<p>K\u00fct\u00fcphaneleri uygulamaya y\u00fckledikten sonra g\u00f6nderilecek mail&#8217;in bilgilerini temsil edecek a\u015fa\u011f\u0131daki modeli olu\u015ftural\u0131m;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class MailRequest\r\n    {\r\n        public string? To { get; set; }\r\n        public string? Subject { get; set; }\r\n        public string? Body { get; set; }\r\n    }\r\n<\/pre>\n<\/div>\n<p>Ard\u0131ndan e-posta&#8217;y\u0131 g\u00f6nderebilmek i\u00e7in uygulamay\u0131 SMTP credentials bilgileriyle yap\u0131land\u0131rmam\u0131z gerekecektir. Bunun i\u00e7in de ilgili verileri a\u015fa\u011f\u0131daki gibi appsettings.json&#8217;a ta\u015f\u0131yal\u0131m;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n  &quot;MailSettings&quot;: {\r\n    &quot;Host&quot;: &quot;email-smtp.us-west-2.amazonaws.com&quot;,\r\n    &quot;Port&quot;: 587,\r\n    &quot;From&quot;: &quot;gyildizmail@gmail.com&quot;,\r\n    &quot;SMTP&quot;: {\r\n      &quot;Username&quot;: &quot;AKIA5FTZEZM73RKKNRAK&quot;,\r\n      &quot;Password&quot;: &quot;BDuoLv\/fzDsYeAdICDYAhyCndLj27+aS5PKbboL0h3i2&quot;\r\n    }\r\n  }\r\n<\/pre>\n<\/div>\n<p>Ve son olarak da MailKit paketi e\u015fli\u011finde bu yap\u0131land\u0131rmalar\u0131 kullanarak e-posta g\u00f6ndermek i\u00e7in a\u015fa\u011f\u0131daki gibi bir servis olu\u015ftural\u0131m;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing AmazonSES.Example.Models;\r\nusing AmazonSES.Example.Services.Abstractions;\r\nusing MailKit.Net.Smtp;\r\nusing MailKit.Security;\r\nusing MimeKit;\r\n\r\nnamespace AmazonSES.Example.Services\r\n{\r\n    public class MailService(IConfiguration configuration) : IMailService\r\n    {\r\n        public async Task SendEmailAsync(MailRequest mailRequest)\r\n        {\r\n            MimeMessage email = new();\r\n            email.From.Add(new MailboxAddress(&quot;Gen\u00e7ay YILDIZ&quot;, configuration&#x5B;&quot;MailSettings:From&quot;]));\r\n            email.To.Add(MailboxAddress.Parse(mailRequest.To));\r\n            email.Subject = mailRequest.Subject;\r\n\r\n            BodyBuilder bodyBuilder = new();\r\n            bodyBuilder.HtmlBody = mailRequest.Body;\r\n            email.Body = bodyBuilder.ToMessageBody();\r\n\r\n            using SmtpClient smtpClient = new();\r\n            await smtpClient.ConnectAsync(configuration&#x5B;&quot;MailSettings:Host&quot;], int.Parse(configuration&#x5B;&quot;MailSettings:Port&quot;]), SecureSocketOptions.StartTls);\r\n            await smtpClient.AuthenticateAsync(configuration&#x5B;&quot;MailSettings:SMTP:Username&quot;], configuration&#x5B;&quot;MailSettings:SMTP:Password&quot;]);\r\n            await smtpClient.SendAsync(email);\r\n            await smtpClient.DisconnectAsync(true);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<\/div>\n<p>Yap\u0131lan \u00e7al\u0131\u015fmaya g\u00f6z atarsan\u0131z e\u011fer pekte izah edilmeyi gerektiren bir durum olmad\u0131\u011f\u0131 i\u00e7in h\u0131zl\u0131ca ilerleyelim ve bu servisi a\u015fa\u011f\u0131daki gibi uygulaman\u0131n IoC Container&#8217;\u0131na ekleyelim.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\nbuilder.Services.AddSingleton&lt;IMailService, MailService&gt;();\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<p>Evet, art\u0131k servisimizi kullanmaya odaklanabiliriz. Hemen a\u015fa\u011f\u0131daki gibi bir minimal api endpoint&#8217;i olu\u015ftural\u0131m ve Postman \u00fczerinden gerekli testi ger\u00e7ekle\u015ftirelim.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\napp.MapPost(&quot;\/send-mail&quot;, async (MailRequest mailRequest, IMailService mailService)\r\n    =&gt; await mailService.SendEmailAsync(mailRequest));\r\n\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-14.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-14.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"617\" height=\"296\" class=\"aligncenter size-full wp-image-27338\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-14.png 617w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-14-300x144.png 300w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><\/a><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-15.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-15.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"403\" height=\"132\" class=\"aligncenter size-full wp-image-27339\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-15.png 403w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-15-300x98.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/a>Evet, g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere .NET Core uygulamas\u0131nda SMTP \u00fczerinden ba\u015far\u0131yla e-posta g\u00f6nderimini ger\u00e7ekle\u015ftirmi\u015f bulunuyoruz.<\/p>\n<p>\u015eimdi s\u0131ra son olarak da .NET &#8211; AWS SDK ile e-posta g\u00f6nderimini incelemeye gelmi\u015ftir.<\/p>\n<h6>.NET &#8211; AWS SDK \u0130le E-Posta G\u00f6nderimi<\/h6>\n<p>Evet, art\u0131k ayn\u0131 i\u015flemin AWS SDK \u00fczerinden nas\u0131l yap\u0131laca\u011f\u0131na g\u00f6z ataca\u011f\u0131z. Bunun i\u00e7in \u00f6ncelikle a\u015fa\u011f\u0131daki paketlerin uygulamaya y\u00fcklenmesi gerekmektedir;<\/p>\n<div style=\"text-align:center;color:red;\">\n<code><a href=\"https:\/\/www.nuget.org\/packages\/AWSSDK.Extensions.NETCore.Setup\" rel=\"noopener\" target=\"_blank\">Install-Package AWSSDK.Extensions.NETCore.Setup<\/a><\/code><br \/>\n<code><a href=\"https:\/\/www.nuget.org\/packages\/AWSSDK.SimpleEmail\/4.0.0-preview.4\" rel=\"noopener\" target=\"_blank\">Install-Package AWSSDK.SimpleEmail<\/a><\/code>\n<\/div>\n<p>AWS SDK \u00fczerinden \u00e7al\u0131\u015faca\u011f\u0131m\u0131zdan dolay\u0131 AWS CLI profile yap\u0131land\u0131rmas\u0131ndan istifade edece\u011fiz. Bunun i\u00e7in de appsettings.json dosyas\u0131na a\u015fa\u011f\u0131daki bilgileri ekleyelim;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{\r\n  .\r\n  .\r\n  .,\r\n  &quot;AWS&quot;: {\r\n    &quot;Profile&quot;: &quot;default&quot;,\r\n    &quot;Region&quot;: &quot;us-west-2&quot;\r\n  }\r\n  .\r\n  .\r\n  .\r\n}\r\n\r\n<\/pre>\n<\/div>\n<p>Ard\u0131ndan e-posta g\u00f6nderebilmek i\u00e7in a\u015fa\u011f\u0131daki servisi geli\u015ftirelim;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class SESService(IConfiguration configuration, IAmazonSimpleEmailService amazonSimpleEmailService) : ISESService\r\n    {\r\n        public async Task SendEmailAsync(MailRequest mailRequest)\r\n        {\r\n            Body mailBody = new(new Content(mailRequest.Body));\r\n            Message message = new(new Content(mailRequest.Subject), mailBody);\r\n            Destination destination = new(&#x5B;mailRequest.To]);\r\n            SendEmailRequest request = new(configuration&#x5B;&quot;MailSettings:From&quot;], destination, message);\r\n            SendEmailResponse response = await amazonSimpleEmailService.SendEmailAsync(request);\r\n            Console.WriteLine(response.HttpStatusCode);\r\n        }\r\n    }\r\n<\/pre>\n<\/div>\n<p>Ve &#8216;Program.cs&#8217; dosyas\u0131 \u00fczerinden de a\u015fa\u011f\u0131daki servis yap\u0131land\u0131rmas\u0131nda bulunal\u0131m;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\nbuilder.Services.AddDefaultAWSOptions(builder.Configuration.GetAWSOptions());\r\nbuilder.Services.AddAWSService&lt;IAmazonSimpleEmailService&gt;();\r\n\r\nbuilder.Services.AddSingleton&lt;ISESService, SESService&gt;();\r\n.\r\n.\r\n.\r\n<\/pre>\n<\/div>\n<p>\u0130\u015fte bitti. \u015eimdi bu yap\u0131lanmay\u0131 test edebilece\u011fimiz \u00f6ncekine benzer bir endpoint olu\u015ftural\u0131m ve ard\u0131ndan g\u00f6rselde oldu\u011fu gibi Postman \u00fczerinden testimizi ger\u00e7ekle\u015ftirelim;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n.\r\n.\r\n.\r\napp.MapPost(&quot;\/send-mail&quot;, async (MailRequest mailRequest, ISESService sesService)\r\n    =&gt; await sesService.SendEmailAsync(mailRequest));\r\n\r\napp.Run();\r\n<\/pre>\n<\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-16.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-16.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"581\" height=\"292\" class=\"aligncenter size-full wp-image-27341\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-16.png 581w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-16-300x151.png 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/a><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-17.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-17.png\" alt=\"Asp.NET Core - Amazon SES(Simple Email Service) \u0130le E-Posta G\u00f6nderimi\" width=\"366\" height=\"119\" class=\"aligncenter size-full wp-image-27342\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-17.png 366w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2024\/11\/Asp.NET-Core-Amazon-SESSimple-Email-Service-Ile-E-Posta-Gonderimi-17-300x98.png 300w\" sizes=\"auto, (max-width: 366px) 100vw, 366px\" \/><\/a>Evet, g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere AWS SDK \u00fczerinden de ba\u015far\u0131l\u0131 bir \u015fekilde e-posta g\u00f6nderimini ger\u00e7ekle\u015ftirmi\u015f bulunuyoruz. Kanaatimce .NET uygulamalar\u0131 i\u00e7in en do\u011fru ve konforlu y\u00f6ntemin AWS SDK ile ger\u00e7ekle\u015ftirildi\u011fini d\u00fc\u015f\u00fcn\u00fcyorum. Tabi ihtiya\u00e7 durumlar\u0131nda benimsenecek yakla\u015f\u0131m ve g\u00f6sterilecek davran\u0131\u015f tabi ki de sizlerin tercihine kalm\u0131\u015f.<\/p>\n<p>Nihai olarak;<br \/>\nE-posta gibi yaz\u0131l\u0131mlar a\u00e7\u0131s\u0131ndan kritik bir kitle\/birey ileti\u015fim arac\u0131n\u0131 efektif ve g\u00f6n\u00fcl rahatl\u0131\u011f\u0131yla kullanabilmek i\u00e7in Amazon SES&#8217;i neden tercih etmemiz gerekti\u011fine ve nas\u0131l faydalanabilece\u011fimize dair isti\u015faremizi etmi\u015f bulunuyoruz. Bundan gayr\u0131s\u0131 hayr\u0131n\u0131 g\u00f6rmeniz dile\u011fiyle&#8230;<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<p>Not : \u00d6rnek \u00e7al\u0131\u015fmaya a\u015fa\u011f\u0131daki github adresinden eri\u015febilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/AmazonSES.Example\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/AmazonSES.Example<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde, AWS taraf\u0131ndan bir e-posta g\u00f6nderim servisi olarak sunulan Amazon SES(Simple Email Service) ile kolayca yaz\u0131l\u0131mlar\u0131m\u0131zdaki e-posta g\u00f6nderme ihtiyac\u0131n\u0131 nas\u0131l giderebilece\u011fimizi inceleyecek ve bir\u00e7ok y\u00f6ntemin yan\u0131nda, bir Asp.NET Core uygulamas\u0131 \u00fczerinden pratiksel&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":27343,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5176,4730],"tags":[5177,5179,4731,5182,5181,5180,5178],"class_list":["post-27312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-amazon-ses","category-aws","tag-amazon-ses","tag-amazon-ses-nedir","tag-aws","tag-email-deliverability","tag-high-deliverability","tag-simple-email-service","tag-simple-email-service-nedir"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=27312"}],"version-history":[{"count":10,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27312\/revisions"}],"predecessor-version":[{"id":27344,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27312\/revisions\/27344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/27343"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=27312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=27312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=27312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}