Postfix'i 587 numaralı bağlantı noktası üzerinden Gmail (smtp.gmail.com) e-postaları gönderecek / geçirecek şekilde yapılandırın


9

Postfix ile Centos 5.4 kullanımı. Yapabilirim

mail foo@gmail.com 
subject: blah
 test
.
Cc:

ve msg gmail'e gönderilir, ancak beklenen spam klasöründe bulunur.

Amacım e-posta mesajlarını oluşturmak ve normal Gelen Kutusunda görünmelerini sağlamak! Postfix / Gmail'i anladığım için, Postfix'i, artık postanın spam olarak görülmeyecek 587 numaralı bağlantı noktasını kullanarak kimliği doğrulanmış / geçerli kullanıcı üzerinden posta göndermek / geçiş yapmak üzere yapılandırmak mümkündür.

Şanssız, 'net farklı siteler / makaleler dayalı bir dizi parametre denedim. Makalelerden bazıları aslında diğer makalelerle çatışıyor gibi görünüyor! Ben de bu konuda stacflow gönderiler üzerinde baktım, ama ben hala bir şey eksik ... Ayrıca IRC (Centos / Postfix) birkaç kişi ile konuştum ve hala soruları var ..

Yani, bir kez daha Serverfault'a dönüyorum!

Bunu başarabilen biri varsa, main.cf, sasl-passwd ve bu çalışmayı yapmak için kullandığınız diğer conf dosyalarını yayınlamak ister misiniz? Yapılandırma dosyalarınızı inceleyebilirsem, umarım nerede vidalandığımı görebilir ve sorunun nasıl düzeltileceğini anlayabilirim.

Bunu ve sağladığınız yardım / işaretçileri okuduğunuz için teşekkür ederiz!

ps, kaçırmış olabileceğimi söyleyen bir yığın gönderme varsa, bana işaret etmekten çekinmeyin!

-Tom

Yanıtlar:


16

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.cfyapı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:rootsahiplik ve 0600izinlerin 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:587bunun yerine sasl_passwd girdisini değiştirmeniz gerekip gerekmediğinden emin değilim, smtp.provider.combu 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 myotherusernameGmail 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)

Merhaba Jeremy ... Cevabınız için teşekkürler. Birkaç soru. Ben smtpd _... params olan net gönderiler gördüm .. Ben onlara ihtiyacım yok almak. Ayrıca, bazı makaleler, TSL sertifikaları var / bakın .. hiç bunlarla uğraşmak gerekir mi? Teşekkürler!!
tom smith

smtpd _... parametreleri sunucu olarak Postfix içindir ... Bir smarthost'a geçiş durumunda Postfix smtp _... parametrelerini kullanan bir istemci olarak çalışıyor.
Jeremy Bouse

1
Gravyface, ne hakkında konuştuğunu bilmiyorsun. Konuyla ilgili bilgi sahibi olmadığınız için SMTP ve TLS / SSL / x.509'da biraz okumanızı öneririz.
Jeremy Bouse

1
felipe-alfaro.org/blog/2009/05/10/… ... İkinci paragraf kendi yorumlarımı yansıtıyor ...
Jeremy Bouse

1
Temizlediğin için teşekkürler Jeremy. Her zaman kendi sertifikanızı imzalamanızın biraz garip olduğunu düşündüm, ama acelemde (ve gördüğüm birçok makalede / öğreticide) hepsi bunu söyledi. Yaşa ve öğren.
gravyface 5:10
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.