Gönderme portunu (587) kullanarak bir sağlayıcı üzerinden geçiş yapmaya çalışmamam mümkün olsa da. Postfix'in geçiş yapmasını etkinleştirmek için, kullanılacak kimlik doğrulaması olan bir dosyayı ayarlamanız ve /etc/postfix/main.cf
yapılandırma dosyanızda bazı değişiklikler yapmanız gerekir .
Birincisi kimlik doğrulama bilgileri. Bunun için ben sadece /etc/postfix/sasl_passwd
şablonu kullanarak uygun satırı eklemek hangi kullanın :
smtp.provider.com smtp_user:smtp_passwd
Bu dosyanın korunduğundan emin olmak isteyeceksiniz, bu nedenle root:root
sahiplik ve 0600
izinlerin ayarlanmasını tavsiye ediyorum . Daha sonra karma eşlenmiş sürümü root olarak oluşturmak için aşağıdakileri çalıştırmak istersiniz.
postmap hash:/etc/postfix/sasl_passwd
Bu yoldan dikkatinizi çektiğinizde, /etc/postfix/main.cf
önceden ayarlanmış bazı değerleri bulabilirsiniz, böylece bunları buna göre değiştirmeniz gerekir, ancak önemli ayrıntılar aşağıdaki gibidir:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_security_level = may
Bunlar Postfix'in posta gönderirken kimlik doğrulaması yapmak için sasl_passwd dosyasını kullanabilmesini sağlar. Daha sonra Postfix'e yapılandırmayı ekleyerek postayı göndermek için sağlayıcıyı kullanması gerektiğini söylemeniz gerekir.
relayhost = smtp.provider.com:port
Varsayılan olarak Postfix, belirtmezseniz 25 numaralı bağlantı noktasını varsayar ve bu geçmişte benim için çalıştı. İstediğiniz kurulumla bağlantı noktası olarak 587 belirtmeniz gerekir. Bununla birlikte, daha önce varsayılan olmayan bir bağlantı noktası üzerinden bunu denemediğim için smtp.provider.com:587
bunun yerine sasl_passwd girdisini değiştirmeniz gerekip gerekmediğinden emin değilim, smtp.provider.com
bu yüzden kendiniz için denemeniz gerekecek.
Yalnızca bu yapılandırma adımları, merkezi bir posta sunucusu aracılığıyla sürdürdüğüm birkaç sunucuda posta iletme işlemlerini gerçekleştirir.
Tam çalışan bir örnek içerecek şekilde güncellendi
Aslında, Ubuntu (Debian tabanlı) dizüstü bilgisayarımı, DSL sağlayıcım giden bağlantı noktası 25 trafiğini engellediğinden e-posta sağlayıcımda (Gmail değil) 587 numaralı bağlantı noktasını kullanacak şekilde yapılandırdım. Bunun yerine posta göndermek için Gmail hesaplarımdan birini kullanacak şekilde güncelledim. Yapmam gereken tek değişiklik
Ben özel verileri engellemeyecek ama aksi yapıştırarak ediyorum gibi- Postfix için yapılandırmayı çalışma.
İlk önce /etc/postfix/main.cf
:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = solitare, localhost.localdomain, , localhost
relayhost = smtp.gmail.com:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
Sonra var /etc/postfix/sasl_passwd
:
smtp.gmail.com:587 myusername@gmail.com:mypassword
Daha sonra aşağıdaki SMTP oturumunu çalıştırdım:
jbouse@solitare:~$ telnet localhost 25
Trying 127.0.0.1...
Connected to solitare.
Escape character is '^]'.
220 example.com ESMTP Postfix (Ubuntu)
helo localhost
250 example.com
mail from: jbouse@example.com
250 2.1.0 Ok
rcpt to: myotherusername@gmail.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
To: myotherusername@gmail.com
From: jbouse@example.com
Subject: Testing Postfix smarthost via Gmail
this is just a test
.
250 2.0.0 Ok: queued as 6269B280191
quit
221 2.0.0 Bye
Connection closed by foreign host.
Sonra myotherusername
Gmail hesabımda oturum açıp şu mesajı okuyorum:
Return-Path: <myotherusername@gmail.com>
Received: from example.com (mydslproviderhostname.net [x.x.x.229])
by mx.google.com with ESMTPS id 6sm401663ywd.11.2010.03.04.19.19.58
(version=TLSv1/SSLv3 cipher=RC4-MD5);
Thu, 04 Mar 2010 19:19:58 -0800 (PST)
Sender: "Jeremy Bouse" <myotherusername@gmail.com>
Received: from localhost (solitare [127.0.0.1])
by example.com (Postfix) with SMTP id 6269B280191
for <myotherusername@gmail.com>; Thu, 4 Mar 2010 22:17:39 -0500 (EST)
To: myotherusername@gmail.com
From: jbouse@example.com
Subject: Testing Postfix smarthost via Gmail
Message-Id: <20100305031745.6269B280191@example.com>
Date: Thu, 4 Mar 2010 22:17:39 -0500 (EST)
this is just a test
Şimdi bir sistem yöneticisi olarak 13 yılımı boşa harcamamış olduktan sonra, başkalarının size söylediği gibi kendinden imzalı bir x.509 sertifikası oluşturmaya gerek kalmadan dizüstü bilgisayarımdan Gmail aracılığıyla e-posta gönderdim. Bunun en önemli /etc/postfix/main.cf
özelliği, Postfix'e TLS'yi destekliyorsa başka bir MTA'ya bağlanırken STARTTLS komutunu vermenin uygun olduğunu söyleyebilecek smtp_tls_security_level ayarıdır . Smtp_tls_security_level ayarını unutursanız, satırlarınızda bir giriş görebilirsiniz :/var/log/mail.log
Mar 4 22:10:58 solitare postfix/smtp[19873]: 20E07280191: to=<myotherusername@gmail.com>, relay=smtp.gmail.com[74.125.47.109]:587, delay=38, delays=38/0.03/0.08/0.01, dsn=5.7.0, status=bounced (host smtp.gmail.com[74.125.47.109] said: 530 5.7.0 Must issue a STARTTLS command first. 20sm399188ywh.48 (in reply to MAIL FROM command))
Ancak düzgün bir şekilde ayarlandığında, aşağıdaki satırlarda bir şey görmelisiniz:
Mar 4 22:20:00 solitare postfix/smtp[20313]: 6269B280191: to=<myotherusername@gmail.com>, relay=smtp.gmail.com[74.125.47.109]:587, delay=141, delays=110/29/0.36/1.9, dsn=2.0.0, status=sent (250 2.0.0 OK 1267759200 6sm401663ywd.11)