Makale Özeti

Çağımızın uygulamalarına baktığımızda uygulamanın kullanıcılara mail göndrebilmesi zorunlu hale gelmiştir. Özellikle ERP paketlerine göz attığımızda bu kapsamdaki uygulamaların mail hizmeti vermesi zorunludur. Dynamics AX bize bu konuda birçok seçenek sunar. Bu makalemizde SysMailer sınıfı yardımıyla nasıl mail gönderebildiğimizi inceleyeceğiz.

Makale

Çağımızın uygulamalarına baktığımızda uygulamanın kullanıcılara mail göndrebilmesi zorunlu hale gelmiştir. Özellikle ERP paketlerine göz attığımızda bu kapsamdaki uygulamaların mail hizmeti vermesi zorunludur. Dynamics AX bize bu konuda birçok seçenek sunar. Bu makalemizde SysMailer sınıfı yardımıyla nasıl mail gönderebildiğimizi inceleyeceğiz.

Bu sınıfı detaylı olarak incelemeden önce mail gönderme işinin ne kadar rahat yapıldığını görmek amacıyla kısa bir kod örneği yazalım :

SysMailer mailer;
;

mailer = new SysMailer();
mailer.SMTPRelayServer("mail.bilisimanadolu.com",25,"myUserId","myPassword");
mailer.tos().add("musteri1@musterilerimiz.com");
mailer.ccs().add("yonetici1@musterilerimiz.com");

mailer.subject("Urunleriniz 12.02.2007 tarihinde sevk edilecektir");
mailer.body("Sayin yetkili, ürünleriniz hazırlanmakta olup, 12.02.2007 tarihinde elinize ulaşacaktır. Sevk irsaliyesini ekte bulabilirsiniz");
mailer.attachments().add("irsaliye.pdf");

mailer.sendMail();

 

Yukarıdaki kod parçacığını çalıştırdığımızda, verdiğimiz parametreler doğrultusunda mail gönderdiğini göreceğiz. Ayrıca deliveryNotification() metodu aracılığıyla gönderildi bilgisi isteyebilir, ya da priority() metodu aracılığıyla mailin önceliğini atayabilirsiniz.SysMailer sınıfınının önemli metodlarını incelersek:

void SMTPRelayServer(str _server, int _port=25, str userName='',str password='') : Mail göndereceğimiz SMTP sunucusun ve mail gonderecek hesabın bilgilerini belirttiğimiz metoddur.

_server : SMTP sunucunun ismi.

_port : SMTP sunucusuna ulaşmak için kullandığımız port numarası. Eğer belirtmezsek 25 kabul edilir.

username : SMTP sunucusundan mail gönderirken kullanacağımız hesabın kullanıcı adı. Boş bırakılabilir.

password : SMTP sunucusundan mail gönderirken kullanacağımız hesabın şifresi. Boş bırakılabilir.

 

public str fromAddress(str addr = '', str name = '') : Mail karşı tarafa ulaştığında gönderen kişi bilgisi olarak ne gözükeceğini belirttiğimiz metoddur.

addr : Gönderen hesabın mail adresi. Boş bırakılabilir.

name : Gönderen hesabın adı. Boş bırakılabilir.

 

tos().add("...") : Göndereceğiniz mailin gideceği adresleri belirtmek için kullanılır. Bu metoda parametre olarak gönderdiğiniz adresler mail'lerdeki To hanesine karşılık gelir.

ccs().add("...") : Göndereceğiniz mailin gideceği adresleri (carbon copy) belirtmek için kullanılır. Bu metoda parametre olarak gönderdiğiniz adresler mail'lerdeki cc hanesine karşılık gelir.

bccs().add("...") : Göndereceğiniz mailin gideceği adresleri (blind carbon copy) belirtmek için kullanılır. Bu metoda parametre olarak gönderdiğiniz adresler mail'lerdeki bcc hanesine karşılık gelir.

 

public str subject(str theSubject='') : Mesajın başlık kısmını atayabileceğiniz metoddur. Parametreyi boş bırakabilirsiniz.

theSubject : Göndereceğiniz mesajın başlığı.

 

public str body(str b = '') : Göndereceğiniz mesajın içeriği metin ise bu metodu kullarak içeriği atayabilirsiniz. Parametreyi boş bırakabilirsiniz.

b : Göndereceğiniz mesajın içeriği.

 

public str htmlBody(str body='') : Göndereceğiniz mesajın içeriği html ise bu metodu kullanarak içeriği atayabilirsiniz. Parametreyi boş bırakabilirsiniz.

body : Göndereceğiniz mesajın html içeriği.

 

public void loadBodyFromFile(str filename) : Göndereceğiniz mesaj sunucunuzdaki başka bir dosyanın içinde bulunuyorsa dosya yolunu vererek Axapta'nın ilgili dosyayı okumasını ve içeriğini html body şeklinde atamasını sağlayabilirsiniz.

filename : Mailin body kısmını içerek metinin bulunduğu dosyanın yolu.

 

public void sendMail() : Mail bilgilerini hazırladıktan sonra sendMail metodu yardımıyla mailinizi gönderebilirsiniz.

 

Eğer basit bir mail göndermek ve yukarıdaki metodlarla uğraşmak istemiyorsanız, SysMailer sınıfının quickSend() metodunu da kullanabilirsiniz. Metodun arayüzü aşağıdaki gibidir :

public void quickSend(str fromAddr, str toAddr, str subject, str body, str cc='', str attachments='')

Bu metodu kullanmadan önce SMTPRelayServer metodu aracılığıyla mail sunucunuzun bilgilerini belirtmiş olmanız gerekir.

Bu makalemizde Dynamics AX içinde bulunan SysMailer sınıfı aracaılığıyla nasıl mail gönderebileceğimizi ve bu sınıfın önemli metodlarını inceleme fırsatını bulduk. 

 

Anıl Özay
Dynamics AX MVP
Bilgisayar Mühendisi