Google Cloud 25,587 gibi portları blokluyor dolayısıyla klasik mail() fonksiyonları ile email gönderemiyorsunuz. Bunu aşmanın yolu ayrı bir servis kullanmaktan geçiyor. Bu konuda google ile partner olan Sendgrid firmasından üye olunarak cloud üzerinde email gönderebilirsiniz.
Normal şartlarda 2000 olan limit google cloud linkinden girildiğinde 25.000/aylık olarak tanımlanıyor. Kaç kişi gördü, kaçı spama düştü gibi güzel istatislikler veren bir arayüzüde var.
Üyelik için : http://sendgrid.com/partner/google?mbsy=gHNj
Örnek kullanımlar için : https://sendgrid.com/docs/
Sunucu üzerinde de bazı ayarlamalar yapmanız gerekiyor, dökümantasyonda farklı email sunucuları için şeşitli anlatımlar mevcut. Ben Centos üzerinde Postfix kullanarak bu tanımlamayı yapmayı anlatacağım.
Önce postfix kuralım ssh ile bağlandıktan sonra;
yum install postfix -y
Daha sonra Sendgrid sitesinde üyelik için oluşturduğumuz kullanıcı adı ve şifreyi tanımlıyoruz.
cat > /etc/postfix/sasl_passwd << EOF [smtp.sendgrid.net]:2525 SENDGRID_KULLANICIADINIZ:SENDGRID_SIFRENIZ EOF
Bu bilgilerden bir db dosyası yaratıyoruz;
postmap /etc/postfix/sasl_passwd
Daha sonra postfix ayarlarına bazı tanımlamalar yapıyoruz; kullanıcı ve şifre kısımlarını değiştirerek bu kodu girin;
cat >> /etc/postfix/main.cf << EOF smtp_sasl_auth_enable = yes smtp_sasl_password_maps = static:SENDGRID_KULLANICIADINIZ:SENDGRID_SIFRENIZ smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000 relayhost = [smtp.sendgrid.net]:2525 EOF
Son olarak postfixi restart ediyoruz;
service postfix restart #test edelim echo test | mail -s test emailadresi@domain.com
Bu işlemler bittikten sonra Cloud üzerine Network kısmında 2525 portunu firewall üzerinden açmayı unutmayın.
Olası hata durumda; /var/log/maillog dosyasına bakın eğer ‘Port 25 already in use’ şeklinde bir hata görürseniz;
netstat -tulpn | grep :25
sonucunda;
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1241/sendmail
şeklinde bir yanıt dönüyorsa 25. portunuz kullanılıyor demektir. Bunu sonlandırıp, postfix i yeniden başlatırsanız sorun çözülecektir.
killall -9 sendmail service postfix restart