Amazon SES'i sunucumdan posta gönderme varsayılan yöntemi olarak nasıl yapabilirim?


14

Sunucumuzdaki tüm e-postalar için Amazon SES'i kullanmaya başlamak istiyorum. PHP barındırma, bazı Django / Python web uygulamaları ve ayrıca e-posta gönderen bazı sistem yardımcı programlarına sahip birkaç serbest tasarımcı var.

Bu yüzden PHP'nin posta işlevine, komut satırı posta komutuna ve python uygulamalarımıza sahip olmak istiyorum, hepsini kendi yöntemleriyle ayarlamak zorunda kalmadan kullanabilirsiniz.

İhtiyacım olan şey Posthost gibi localhost üzerinde çalışan ve teslimat için SES kullanmak gibi bir şey olduğunu düşünüyorum ama bunu nasıl yapacağımı bilmiyorum.

Amazon'un dokümanlar ses-send-email.pl komut dosyasını çağırmak için posta aktarım aracımı (MTA) kurmam gerektiğini söylüyor. Senaryo var ama bunu nasıl başaracağımdan emin değilim.

Ben doğru yolda mıyım? Öyleyse Postfix'i bu komut dosyasını kullanacak şekilde nasıl yapılandırabilirim?

Yanıtlar:



14

SES geliştirici kılavuzundan kopyalanan bazı öğeler şunlardır :

Ses-send-email.pl dosyasını Postfix ile entegre etmek için:

  1. Master.cf dosyasını açın. Birçok sistemde, bu dosya /etc/postfixdizinde bulunur.
  2. Aşağıdaki iki satırı master.cfdosyaya ekleyip dosyayı kaydederek yeni bir posta aktarımını yapılandırın .

    aws-email  unix  -       n       n       -       -       pipe
      flags=R user=mailuser argv=/opt/third-party/amazon/ses-send-email.pl -r -k /opt/third-party/amazon/aws-credentials -e https://email.us-east-1.amazonaws.com -f ${sender} ${recipient}
    

Bu örnek hakkında aşağıdakilere dikkat edin:

  • Bayrak satırı en az bir boşluk karakteriyle başlar.
  • User parametresi, root olmayan bir kullanıcı (yani yönetici olmayan bir kullanıcı) belirtmelidir. Kullanıcı mailuseryalnızca açıklama amaçlıdır.
  • ses-send-email.plSenaryo ve / opt / üçüncü taraf / amazon dizinde kimlik bilgileri dosyası huzurunuzda.
  • Amazon SES ile iletişim kurmanın bitiş noktası https://email.us-east-1.amazonaws.com

Bu parametreleri uygun şekilde değiştirmeniz gerekir.

  1. Main.cf dosyasını master.cf ile aynı dizinde açın ve aşağıdaki gibi değiştirin:

    1. Default_transport satırını arayın:

      • Varsa, şu şekilde görünecek şekilde değiştirin:

        default_transport = aws-email
        
      • Yoksa, önceki içeriğe yeni bir satır ekleyin.

    2. İşiniz bittiğinde main.cf dosyasını kaydedin.
  2. Postfix sunucunuzu yeniden başlatın.

    /etc/init.d/postfix restart
    

Bu komutun sunucunuzda tam olarak aynı olmayabileceğini unutmayın. Bu noktadan sonra, giden e-postanız Amazon SES aracılığıyla gönderilir. Postfix sunucunuz üzerinden bir e-posta mesajı göndererek ve ardından hedefine ulaştığını doğrulayarak bunu test edebilirsiniz. İleti teslim edilmezse, sisteminizin posta günlüğünde hata olup olmadığını kontrol edin. Birçok sistemde, bu/var/log/mail.log

- Amazon Cloud ve SES'de denediğim her şeyi bir araya getiren basit bir blog oluşturdum. Bağlantı: http://netwiser.blogspot.com/2011/02/setup-amazon-ses-to-relay-email-by.html


Harika, teşekkürler. Bu, postfix'i yapılandırmanın sorunumu çözmenin doğru yolu olduğu anlamına gelir. Bunu bir deneyeceğim ve yakında cevabınızı kabul edeceğim.
Jake

1

Sunucunuzda Python / Django uygulamaları barındırdığınız için Postfix'i AWS Perl betiklerinin Python eşdeğerine bağlamayı tercih edebilirsiniz. Bu kılavuzun detayları:

http://aws.amazon.com/articles/2405502737055650

Alternatif olarak, Perl komut dosyalarını kullanmak istiyor ancak CPAN modüllerinizin güncelliğini yitirdiğini (benim gibi) bulduysanız, bağımlılıkları işletim sisteminizin paket yöneticisi aracılığıyla kurmak için daha kolay bir yol olabilir. Örneğin, ubuntu'da bunu aşağıdakilerle yapabilirsiniz:

sudo apt-get install libio-socket-ssl-perl libxml-libxml-perl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.