Selamlar;
komut satırımızdan aldığımız verileri kimi zaman mailboxımıza atmak isteyebiliriz veya otomatik çalışan test sonuçlarının mailimize gelmesini de.. Ancak çok kullanılan mail sunucularının (gmail, yahoo, vb..) artık güvenilir kaynaktan gelmeyen mailleri spam dahi saymadığı ve direkt yok saydığı bir gerçek. Bu yüzden bu işlemleri smtp üzerinden yapmak gibi bir gereksinim doğuyor.
Bu işin windows platformunda nasıl yapıldığını kısaca http://www.dubluve.net/2013/08/01/windows-komut-satirindan-mail-gonderimi/ yazımızda anlatmıştık. Şimdi sıra mac’te ve Linux sistemlerde. Örneği gmail üzerinden vereceğim.
1. Adım : Postfix main.cf dosyasını düzenleyelim
sudo vim /etc/postfix/main.cf
sizin main.cf dosyanız farklı bir yerlerde olabilir tabi ki. Bir zahmet bulunuz.
Daha sonra commentlenmiş relayhosts yazısının hemen altına
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
2. Adım : sasl_password dosyası yoksa oluşturalım
sudo vim /etc/postfix/sasl_passwd
içerisine aşağıdakini yazalım
[smtp.gmail.com]:587 firstname.lastname@example.org:password
3. Adım : bir kaç izin ve service restart felan..
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master
bu launchctl sadece mac için geçerli. (mail’in konsol üzerinden gönderimlerde hizmet olarak çalışması gerekmiyor diye hatırlıyorum.)
4. Adım : Deneyelim :
echo "bu bir test maili bakalım gidecek mi?" | mail "email@example.com"
Bu işlem sonrasında mail gerçekten gmaile düşüyorsa tamamdır. Tabi sizin bu ayarlarınızı yaptığınız mail adresinizi SMTP olarak kullanmanız gerekiyor. (Bu tıpkı elektrikli ev aletlerin içinden çıkan olası arıza durumlarında yapılacaklar listesindeki “fişi taktığınıza emin olun” maddesine denk düşüyor sanırım)
Bu işi Linux için şöyle yapanlar da mevcut. Onu da şu an türkçeleştirmeye mecalim yoktur. Buyrunuz linki : http://tecadmin.net/send-email-smtp-server-linux-command-line-ssmtp/
Linux üzerinde bu yazıda anlattığımız komut satırı üzerinden mail gönderimi windows için şu şekilde yapılabilmekte.
Öncelikle bu linkten mailsend adlı programı indirin. https://code.google.com/p/mailsend/downloads/detail?name=mailsend1.17b12.exe
Daha sonra bu exe dosyasını belirli bir yere kaydedin. Ben d:/ dizinime kaydettim.
Komut satırı üzerinden örneğin aşağıdaki komut ile mail gönderiminizi yapabilirsiniz. (Ben burada örnek olması açısından SMTP üzerinden gönderim yaptım.)
d:/mailsend.exe -to firstname.lastname@example.org -from email@example.com -starttls -port 587 -auth -smtp mail.domain.com.tr -sub "mail basligi" -M "mail icerigi" -user firstname.lastname@example.org -pass ******
Bu işlem windows 7 de denenmmiştir. Ayrıca, projenin anasayfasında konuyla ilgili detaylara ve detaylı kullanımlarına ulaşabilirsiniz. https://code.google.com/p/mailsend/
Bunu Neden kullanayım?
Ben bu işlemi bir git reposu üzerinde master merge işlemi sornasında tüm arkadaşlarıma mail atmamı, otomatikleştirmek için kullandım. Sizin tabi ki farklı ihtiyaçlarınız da olabilir.
Umarım işinize yarar.
Ara sıra mail ile haberleşme konularında, çeşitli tetik (trigger) metodları yaratmak istediğimizde, biri bir yere mail atacağına keşke HTTP POST isteği yapsa dediğinizi duyar gibiyim. Bu noktada tam “böyle bir hizmeti nasıl yaparım?” ı araştırmaya başlayacakken, ilk araştırmamda bu siteyi buldum. Cloudmailin.com işte tam burada devreye giriyor, ve mail olarak attığınız datayı size HTTP POST isteği ile , hem de 4 farklı seçenekte (Original,JSON,Multipart,Raw format) sunuyor. Yapmanız gereken üye olmak ve mailin HTTP POST isteği olarak gönderilmesini istediğiniz URL adresini belirlemek. Mail adresini sistem zaten otomatik olarak belirleyecek ve size verecek.
Ancak tamamen ücretsiz değil, sadece deneme amaçlı aylık küçük bir sayıda maili ücretsiz olarak yolluyor.
Bir mail adresinize gelen mailleri otomatik olarak burada oluşturduğunuz maile yönlendirirseniz mantıken, tüm mailleriniz size HTTP yoluyla iletilmiş olacak ki, bu noktada yapacaklarınız sizin yaratılığınıza kalmış oluyor.
Teknik destek hizmeti veren firmaların ilgisini çekebileceğini düşünüyorum.
Yıldız Teknik Üniversitesi’nin biz öğrencilerine verdiği mail adreslerini kontrol etmek için, hotmail.com veya türevi bir yere ihtiyacımız yok. Çoğumuz önceden böyle kontrol ediyorduk bu mailleri.
Aslında bakarsanız Thunderbird, Outlook gibi mail uygulamasına da ihtiyacımız yok. Artık Gmail hesaplarımızdan pop3 yardımıyla bu adrese gelen maillerimizi okuyabiliyoruz. Okulumuz sağolsun, bu tarz ayarların nasıl yapılacağınız bizim en ulaşamayacağımız yerlerde yayınlamayı başarıyor 🙂
Bilindiği üzere artık Usis’e girilen vize ve final notlarımız da, okulun bize verdiği mail adresine bilgi olarak gönderiliyor. Sürekli Usis’i kontrol etmemize de gerek kalmıyor böylece. Yani bu mail adresleri eskiden önemli değildi ama artık kullanılıyor 🙂
Gmail‘de, ayarlar bölümündeki, Hesaplar ve İçe Aktarma İşlemi sekmesine geliyoruz. Burada Diğer hesaplardaki postayı kontrol et (POP3 kullanarak) kısmına gelip, Sahip olduğunuz bir POP3 posta hesabını ekleyin‘e tıklıyoruz.
Ardından, gelen ekrana mail adresimizi yazıyoruz.
Yıldız Teknik Üniversitesi mail ayarları
Sonraki adıma geçerek, gerekli alanları resimdeki gibi dolduruyoruz.
Yıldız Teknik Üniversitesi mail ayarları
Bu adımdan sonra bir kaç şey seçenek daha karşınıza çıkmakta. Maillerinizi @std.yildiz.edu.tr adresinden gönderebilmek gibi seçenekler bunlar. Burada maillerin SMTP sunucusu üzerinden gönderilip gönderilmeyeceğini soruyor, Gmail üzerinden gönder seçeneğini seçiyoruz.
Daha sonraki mail adresinize bir adet mail gönderiliyor, Gmail Onayı şeklinde. Buradaki onay kodunu kopyalayıp, istenilen kutucuğa yapıştırdığınız takdirde, kurulumu tamamlamış bulunuyorsunuz.
Ayrıca aynı ayarları kullanarak diğer mail uygulamalarına da mail adresinizi bu şekilde kurabilirsiniz 🙂
UID COPY: Quota exceeded (mailbox for user is full) hatasının sebebi :
Oradaki silmek tuşu aslında çöpe taşımak işine yarıyor. Mantıken de çöpe taşırken de ilk önce kopyalıyor, sonra gelen kutusundakini siliyor. Hiç kotası olmadığı için de bu ilk kopyalama işlemini yapamıyor.
UID COPY: Quota exceeded (mailbox for user is full) hatasının çözümü :
silinmek istenen maile tıklayıp daha sonra shift+delete tuşlarına basarak çöpe taşımadan kalıcı olarak direkt silme işlemi yapabilirsiniz.