Direct Mail, SMTP'yi destekler; bu sayede herhangi bir dilin SMTP kitaplığını veya standart komut satırı araçlarını kullanarak programatik olarak e-posta gönderebilirsiniz.
Ön koşullar
SMTP üzerinden e-posta göndermeden önce gönderen adresiniz için bir SMTP parolası ayarlayın.
Direct Mail konsolu üzerinde oturum açın.
Sol gezinme bölmesinde Sender Addresses seçeneğine tıklayın.
Kullanmak istediğiniz gönderen adresini bulun ve İşlemler sütunundaki Set SMTP Password seçeneğine tıklayın.
Bir SMTP parolası girin ve OK seçeneğine tıklayın.
SMTP gönderimi nasıl çalışır?
Basit Posta Aktarım Protokolü (SMTP), istemci ile sunucu arasındaki komut ve yanıt alışverişi yoluyla mesajları iletir. İstemci bir komut gönderir; sunucu ise bir onay döndürür. Gönderen bu süreci kontrol eder.
Protokolün tam teknik özellikleri için bkz. RFC5321.
SMTP sunucuları iki kategoriye ayrılır:
smtpd (posta gönderme sunucusu) — giden mesajları kabul etmeden önce gönderenin kimlik doğrulamasını gerektirir.
mx (posta alma sunucusu) — harici alan adlarından yerel kullanıcılara teslim edilen gelen mesajları kabul eder.
Direct Mail sunucusu bir smtpd sunucusudur. Kimlik doğrulama kullanıcı adı, gönderen adresiyle tam olarak eşleşmelidir ve parola, konsolda ayarladığınız paroladır.
Uygulama kodundan e-posta göndermek için ham SMTP komutları yerine dilinize uygun bir SMTP kitaplığı kullanın. Bkz. SMTP çağrı örnekleri.
Bağlantı ayrıntıları
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SMTP oturum akışı
Her SMTP oturumu aşağıdaki sırayı izler:
telnet(şifrelenmemiş) veyaopenssl s_client(TLS) kullanarak SMTP sunucusuna bağlanın.İstemciyi tanımlamak ve yetenekleri müzakere etmek için
EHLOkomutunu gönderin.AUTH LOGINkomutunu gönderin ve Base64 ile kodlanmış kimlik bilgilerini sağlayın.Gönderen adresini belirtmek için
MAIL FROMkomutunu gönderin.Alıcı adresini belirtmek için
RCPT TOkomutunu gönderin.Mesaj başlıklarını ve gövdesini göndermek için
DATAkomutunu gönderin.Mesaj gövdesinin sonunu işaret etmek için tek başına bir nokta olan
.karakterini gönderin.Oturumu kapatmak için
QUITkomutunu gönderin.
Örnekler
Aşağıdaki örnekler, komut satırı araçları kullanılarak gerçekleştirilen tam SMTP oturumlarını gösterir. S: sunucu yanıtını; C: ise istemci komutunu temsil eder. Linux'ta değerleri Base64 ile kodlamak için echo -n Content|base64 komutunu kullanın.
Şifrelenmemiş (bağlantı noktası 80)
$telnet smtpdm.aliyun.com 80
S:220 smtp.aliyun-inc.com MX AliMail Server(127.0.0.1)
C:EHLO test.com
S:250-smtp.aliyun-inc.com
S:250-8BITMIME
S:250-AUTH=PLAIN LOGIN XALIOAUTH
S:250-AUTH PLAIN LOGIN XALIOAUTH
S:250-PIPELINING
S:250 DSN
C:AUTH LOGIN
S:334 dXNlcm5hbWU6
C:YSoqKkBleGFtcGxlLm5ldA== Note: The Base64 encoding of the username a***@example.net.
S:334 UGFzc3dvcmQ6
C:dGVzdA== Note: The Base64 encoding of the user password test.
S:235 Authentication successful
C:MAIL FROM: <a***@example.net> Note: Enclose the sender address in angle brackets (<>).
S:250 Mail Ok
C:RCPT TO: <a***@example.net>
S:250 Rcpt Ok
C:DATA
S:354 End data with <CR><LF>.<CR><LF>
C:subject: test
C:from: <a***@example.net>
C:to: <a***@example.net>
C:
C:test
C:.
S:Data Ok: queued as freedom ###envid=148316944
C:QUIT
S:221 Bye
Şifrelenmiş (bağlantı noktası 465, TLS)
Öncelikle OpenSSL ile bağlantı kurun. Kullanmak istediğiniz TLS sürümüne göre aşağıdaki komutlardan birini seçin:
openssl s_client -connect smtpdm.aliyun.com:465 -crlf
or
openssl s_client -connect smtpdm.aliyun.com:465 -tls1 -cipher AES128-SHA -crlf
openssl s_client -connect smtpdm.aliyun.com:465 -tls1_1 -cipher AES128-SHA -crlf
openssl s_client -connect smtpdm.aliyun.com:465 -tls1_2 -cipher AES128-GCM-SHA256 -crlf
openssl s_client -connect smtpdm.aliyun.com:465 -tls1_3 -cipher AES128-GCM-SHA256 -crlf
OpenSSL bağlantısı kurulduktan sonra aynı pencerede aşağıdaki komutları satır satır girin:
$openssl s_client -connect smtpdm.aliyun.com:465 -crlf
***
***
***
S:220 DirectMail Smtpd Server(127.0.0.1)
C:EHLO test.com
S:250-smtp.aliyun-inc.com
S:250-8BITMIME
S:250-AUTH=PLAIN LOGIN XALIOAUTH
S:250-AUTH PLAIN LOGIN XALIOAUTH
S:250-PIPELINING
S:250 DSN
C:AUTH LOGIN
S:334 dXNlcm5hbWU6
C:YSoqKkBleGFtcGxlLm5ldA== Note: The Base64 encoding of the username a***@example.net.
S:334 UGFzc3dvcmQ6
C:dGVzdA== Note: The Base64 encoding of the user password test.
S:235 Authentication successful
C:MAIL FROM: <a***@example.net> Note: Enclose the sender address in angle brackets (<>).
S:250 Mail Ok
C:rcpt to: <a***1@example.net> Note: Use lowercase for rcpt to. Uppercase may not be recognized.
S:250 Rcpt Ok
C:DATA
S:354 End data with <CR><LF>.<CR><LF>
C:subject: test
C:from: <a***@example.net>
C:to: <a***1@example.net>
C:
C:test
C:.
S:250 Data Ok: queued as freedom ###envid=600000105713504612
C:QUIT
S:DONE
Mesaj gövdesi ve MIME
Yukarıdaki örnekler düz metin gövdesi kullanır. Zengin metinli e-postalar (HTML, ekler, kodlanmış konular) için mesajı Çok Amaçlı İnternet Posta Uzantıları (MIME) teknik özelliklerine göre biçimlendirin. Doğru MIME biçimlendirmesi, alıcının posta sunucusunun mesajı spam olarak işaretleme olasılığını azaltır.
MIME teknik özellikleri için bkz. RFC2045. MIME ile kodlanmış mesajlar oluşturmak için Direct Mail SMTP örneklerindeki dile özel kitaplıkları da kullanabilirsiniz.
Adım adım bir örnek için bkz. SMTP kullanarak eki olan bir e-postayı nasıl gönderirim?