X

MATLAB ile E-posta Gönderme

Yazı İçeriği

Giriş

MATLAB ile E-Posta göndermek mi istiyorsunuz? Çalışması çok uzun süren bir Matlab kodunuz var ve bittiği zaman haberdar olmak mı istiyorsunuz? Matlab’ın çıkardığı sonuçları uzaktaki bir bilgisayardan e-posta adresinize göndermek mi istiyorsunuz? Bunları Matlab’ın e-posta gönderme imkânlarıyla gerçekleştirebilirsiniz. Üstelik kurulum sadece birkaç dakika sürüyor.

Aşama 1: MATLAB E-Posta Ayarları

Öncelikle e-posta hesabınıza Matlab üzerinden giriş yapmanız gerekiyor. Aşağıdaki kod parçasıyla bunu gerçekleştiriyoruz:

eposta='epostaadresiniz@gmail.com'; %Tırnak içine e-posta adresinizi yazın.

sifre='epostasifreniz'; %Tırnak içine şifrenizi yazın.

smtpadresi='smtp.gmail.com'; %Tırnak içine smtp adresinizi yazın.

portno='465'; %Tırnak içine port numaranızı yazın.




setpref('Internet','SMTP_Server',smtpadresi);

setpref('Internet','E_mail',eposta);

setpref('Internet','SMTP_Username',eposta);

setpref('Internet','SMTP_Password',sifre);

props = java.lang.System.getProperties;

props.setProperty('mail.smtp.auth','true');

props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl.SSLSocketFactory');

props.setProperty('mail.smtp.socketFactory.port',portno);




sendmail(eposta,'Konu Basligi','E posta metni')

 

Kullandığınız e-posta hesabına göre ilk 4 satırdaki bilgileri girmeniz gerekiyor. Bu örnek kod parçasında biz yaygın kullanım nedeniyle Gmail’e uygun şekilde bir yazım gerçekleştirdik. Sadece eposta ve sifre değişkenlerine kişisel adres ve şifre bilgisi girmeniz yeterli. Bu yazının sonunda popüler birkaç e-posta sağlayıcısının SMTP adresi ve port numaralarını da ekledik; eğer başka bir e-posta sağlayıcısından hizmet alıyorsanız smtpadresi ve portno değişkenlerinin değerlerini aşağıdaki değerlerle değiştirmeniz gerekiyor. Ancak kurulum bu noktada bitmiyor. E-posta sağlayıcınıza ve ayarlarınıza göre değişmekle beraber, çok büyük ihtimalle, bu kod parçasını Matlab’da ilk defa çalıştırdığınızda “Authentication failed.” (Doğrulama başarısız.) mesajı alacaksınız. Bunun sebebi Gmail ve benzeri e-posta sağlayıcılarının Matlab’ı güvenlik seviyesi düşük bir uygulama olarak algılamaları. Bu sebeple e-posta sağlayıcıları bunun tehlikeli olduğunu düşünüp girişe izin vermiyorlar. Matlab’dan giriş yapabilmek için daha düşük güvenlikli uygulamalara erişim izni vermeniz gerekecek. Bu yüzden, esas e-posta adresinizi kullanmak yerine ayrı bir e-posta adresi açıp bu iş için kullanmanızı tavsiye ederiz.

Aşama 2: E-Posta Sağlayıcı Ayarları

Bu noktadan sonra Gmail özelinde devam edeceğiz; ama diğer e-posta sağlayıcılarında da benzer adımlar izlemeniz gerekecektir. Google bu kod çalıştıktan sonra size bir e-posta göndererek engellenmiş giriş denemesini gözden geçirmenizi isteyecektir. E-postanın İngilizce hali aşağıdaki resimde verilmiştir. Burada, e-postanın sonuna doğru, daha az güvenli uygulamalara erişim izni vermenizi sağlayacak bir link var (Resim 1’de altı çizili). Bu linke tıklayarak daha az güvenli uygulamalara erişim izni vermeniz gerekiyor (Resim 2). İzni verdikten sonra yukarıdaki kod parçasını tekrar çalıştırın. E-postanın geldiğini teyit edin. sendmail() komutundaki ilk değişken teslim edilecek adresi (biz burada kendi e-posta adresimize gönderimde bulunduk), ikinci değişken (‘Konu basligi’) e-postanın başlığını, üçüncü değişken (‘E posta metni’) ise e-postanın metin kısmını teşkil ediyor.

Dipçe: Erişim iznini açmanıza rağmen aynı hatayı tekrar alabilirsiniz. Erişim izni tercihiniz kaydedilmemiş olabilir. Ayarlardan erişimi tekrar açmanız gerekebilir.

Resim 1
Resim 2

E-Posta İletisine Dosya İliştirmek

Matlab aracılığıyla e-posta gönderirken postanıza dosya da ekleyebilirsiniz. Bunun için aşağıdaki parçadakine benzer bir kod yazmanız gerekiyor. Bu kod parçasında epostaadresiniz@gmail.com adresine, C:\Dosyalar\ klasöründe bulunan cikti1.txt ve cikti2.txt dosyaları gönderiliyor. Birden fazla dosya gönderimi olduğu için, dosya adresleri köşeli parantez içinde, virgüllerle birbirinden ayrılarak yazılıyor.

sendmail('epostaadresiniz@gmail.com',Konu basligi', 'E posta metni', {'C:\Dosyalar\cikti1.txt', 'C:\Dosyalar\cikti2.txt'});

Yaygın E-posta sağlayıcılarının SMTP adresleri ve port numaraları

Ek: Diğer yaygın e-posta sağlayıcılarının SMTP adresleri ve port numaraları:

E-posta sağlayıcı SMTP adresi Port numarası
Outlook (Hotmail) smtp-mail.outlook.com 587
Yahoo smtp.mail.yahoo.com 465
Yandex smtp.yandex.com 465
Mynet smtp.mynet.com 465

 

Yararlanılan kaynaklar:

[1] https://www.mathworks.com/matlabcentral/answers/93383-how-do-i-use-sendmail-to-send-email-from-matlab-7-2-r2006a-via-the-gmail-server-or-yahoo-server

[2] https://www.mathworks.com/help/matlab/import_export/sending-email.html

hakkans: