Meskipun saya belum mencoba untuk merelay melalui penyedia menggunakan port pengiriman (587) itu harus mungkin. Untuk mengaktifkan Postfix untuk menyampaikan, Anda perlu mengatur file dengan kredensial yang diautentikasi untuk menggunakan dan membuat beberapa modifikasi pada /etc/postfix/main.cf
file konfigurasi Anda .
Yang pertama adalah kredensial otentikasi. Untuk ini saya cukup menggunakan /etc/postfix/sasl_passwd
yang saya tambahkan baris yang sesuai menggunakan templat:
smtp.provider.com smtp_user:smtp_passwd
Anda akan ingin memastikan file ini dilindungi sehingga saya sarankan root:root
kepemilikan dan 0600
izin ditetapkan padanya. Anda kemudian ingin menjalankan yang berikut ini untuk membuat versi hash mapped sebagai root.
postmap hash:/etc/postfix/sasl_passwd
Dengan keluar dari cara mengalihkan perhatian Anda pergi, /etc/postfix/main.cf
Anda mungkin menemukan beberapa nilai yang sudah ditetapkan sehingga Anda perlu mengubahnya sesuai tetapi rincian penting adalah sebagai berikut:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_security_level = may
Ini akan memungkinkan Postfix untuk dapat menggunakan file sasl_passwd untuk mengotentikasi saat mengirim email. Anda kemudian harus memberi tahu Postfix bahwa itu harus menggunakan penyedia untuk mengirim surat dengan menambahkan konfigurasi
relayhost = smtp.provider.com:port
Secara default Postfix mengasumsikan port 25 jika Anda tidak menentukan dan ini telah bekerja untuk saya di masa lalu. Dengan pengaturan yang Anda minta, Anda harus menentukan 587 sebagai port. Dengan mengatakan bahwa saya tidak yakin apakah Anda harus memodifikasi entri sasl_passwd menjadi smtp.provider.com:587
hanya smtp.provider.com
karena saya belum mencoba melakukan ini pada port non-default sebelum jadi Anda harus mencobanya sendiri.
Langkah-langkah konfigurasi ini sendiri menangani penerusan surat pada beberapa server yang saya pelihara melalui server surat pusat.
Diperbarui untuk memasukkan contoh yang berfungsi penuh
Ternyata saya mengkonfigurasi laptop Ubuntu (berbasis Debian) saya untuk menggunakan port 587 pada penyedia email saya (bukan-Gmail) karena penyedia DSL saya memblokir lalu lintas port keluar 25. Saya memperbarui untuk menggunakan salah satu akun Gmail saya untuk mengirim surat sebagai gantinya. Satu-satunya perubahan yang perlu saya lakukan
Saya mengaburkan data pribadi tetapi menyisipkan konfigurasi as- berfungsi untuk Postfix.
Pertama yang kita miliki /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 =
Selanjutnya kita memiliki /etc/postfix/sasl_passwd
:
smtp.gmail.com:587 myusername@gmail.com:mypassword
Saya kemudian menjalankan sesi SMTP berikut:
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.
Lalu saya masuk ke myotherusername
akun Gmail saya dan membaca pesan:
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
Sekarang setelah menunjukkan 13 tahun saya sebagai administrator sistem tidak sia-sia, saya memiliki pengiriman email dari laptop saya melalui Gmail tanpa perlu membuat sertifikat x.509 yang ditandatangani sendiri seperti yang orang lain katakan kepada Anda. Tambahan kunci ke pengaturan /etc/postfix/main.cf
ini adalah pengaturan smtp_tls_security_level agar dapat memberi tahu Postfix bahwa tidak masalah untuk mengeluarkan perintah STARTTLS saat menghubungkan ke MTA lain jika mendukung TLS. Jika Anda lupa pengaturan smtp_tls_security_level, Anda mungkin melihat entri di /var/log/mail.log
sepanjang baris:
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))
Namun dengan itu diatur dengan benar, Anda akan melihat sesuatu di sepanjang baris:
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)