• 10-05-2025, 03:33:12
    #1
    İyi geceler herkese,
    Bir web browser oyunumda kayıt e-posta onayları için Amazon SES kullanıyorum direkt php üzerinden kayıt oluşur oluşmaz e posta gönderiyor. Toplu e-posta reklam gönderimlerim için de alt alan adıma YaySMTP, Amazon SES ve FluentCRM kurdum ki buradan reklam çakabileyim. Ciddi ciddide güzel optimize ettim gönderdiğim her e-posta doğrudan gelen kutusuna. (sanırım şimdi toparlamak biraz zaman alacak)


    Bugün başka bir web sitem için Amazon SES kurulumuna geçtim amacım yine benzer ama farklı bir sektör. Girdiğim sırada birçok e-postanın gönderildiğini fark ettim artık şans mı dersiniz o zamana mı denk geldi bilemiyorum ama tam da o an yaşanıyordu ve tüm kayıtlı Amazon SES kimliklerimden e-posta gönderiliyordu. Görünce anlam veremedim database falan baktım oyuna kayıt olan kullanıcı mı var onlara mı e posta gidiyor falan filan derken biraz afalladım, tüm WordPress sitelerimde FluentCRM ve YaySMTP eklentilerini kaldırdım. Gönderimler hala devam etti. (Bu arada bu şekilde alt alan adlarınıza e posta sistemi kurup kullanabilirsiniz)


    Aynı anda da Amazon üzerinden takip ediyorum, birisi aşağıda da görseli olan eposta test kısmından e-posta adreslerimi test ettiğini gördüm ***** a bak iyisini seçmeye çalışıyor.Bu fluentcrm veya yaysmtp e ne kadar e posta kayıt ettiysem hepsini tek tek deneyip gönderim yapıyordu. Bu sefer gönderimleri tamamen durdurdum. E posta gönderimi durdu neyse muhtemelen FluentCRM veya YaySMTP üzerinden gizli anahtarlar (access key ve secret key) bir şekilde sızdırılmıştı. Çünkü sunucu loglarında dışarıdan bir giriş oynama mıncıklama vesaire yoktu. İşime gelir iş yükü azalacak xD
    Amazon’un verdiği key'lerle gönderim yapılamayınca e-posta trafiği durdu. Ama o zamana kadar toplamda 4.000’in üzerinde e-posta göndermişti bile zırtapoz. Bu FluentCRM ve YaySMTP kullanmam gerektiği için key’leri değiştirmedim sadece devre dışı bıraktım. Çünkü bu pluginlerden vazgeçsem ve başka bir plugin geçsem, aynı durumun tekrar yaşanmayacağının bir garantisi yok.
    Sonra chatgpt durumu sordum. direkt keyleri değiştir dedi ciddi ciddi süper zeka xD. E bu çözüm işime yaramayacak alternatif lazım. Sonunda Amazon IAM üzerinden IP adresi politikası belirlenebileceğini söyledi zar zor o da. Yani sadece belirli IP adreslerinden erişime izin vererek, bir başkası key’leri bilse bile kullanamayacak.Neyse ben bunu yaptım tek tek aynı politikaları hem AIM lere hemde kimliklere uyguladım sonra test etmek için Hertzner üzerinden farklı IP de bir sunucu oluşturdum içine ubuntu kurup cyberpanel ekleyip boşta olan bir domainimi yönlendirdim ve wordpress yükleyip yaysmtp üzerinden aynı keylerim ile gönderim denedim ve gönderim yapmadı
    User 'arn:aws:iam::09xxxx17:root' is not authorized to perform 'ses:SendRawEmail' on resource 'arn:aws:ses:eu-xxxx-1:0xxxx17:identity/support@xxx'
    Aşağıda bu çözüm için gerekli IAM politikası kodunu paylaşıyorum aklınıza gelsin daha önce uygulamadıysanız uygulayın aynı durumla karşılaşıp önlem almak zorunda kalmayın diye açtım konuyu. (xxx kısımlarını kendi bilgilerinizle değiştirmeniz gerekiyor).
    Yaklaşık %0.23 oranında bir şikayet geri dönüşü oldu tabi daha şikayet etmeyenler vardır onlarıda bekleyeceğiz.Zzamanla toparlar elbet. Bu arada eminim başka koruma yöntemleri de vardır ama daha önce amazon ses tecrubem olmadığı ve denemediğim için, hızlıca uygulayabildiğim çözüm bu oldu.

    Amazonses maliyet merak edenler için aşağıya bir görsel bırakıyorum. E-posta listem 2.600 kişi civarında. Aylık olarak bir defa toplu gönderim yapıyorum. Ayrıca her ay otomatik kayıt e-postaları da yaklaşık 200-300 civarında oluyor. Genel maliyeti aşağıdaki görselde görebilirsiniz.





    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Deny",
                "Action": [
                    "ses:SendEmail",
                    "ses:SendRawEmail"
                ],
                "Resource": "*",
                "Condition": {
                    "NotIpAddress": {
                        "aws:SourceIp": "xxx.xxx.xx.xxx/32"
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ses:SendEmail",
                    "ses:SendRawEmail"
                ],
                "Resource": "*"
            }
        ]
    }
  • 10-05-2025, 04:32:44
    #2
    Güzel bilgi hocam teşekkürler favorilere ekledim