Làm cách nào để định cấu hình exim4 để gửi thư qua máy chủ thư ssl smtp được bảo vệ bằng mật khẩu?


19

Tôi muốn cronjobs của tôi có thể gửi thư từ máy tính ở nhà của tôi. Máy chủ của tôi cấu hình exim4 như thế này:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Tuy nhiên, ở nhà, ISP của tôi chặn thư được gửi trực tiếp qua tường lửa. Tôi có một mật khẩu bảo mật ssl smtp server mà tôi có thể định tuyến thư qua, nhưng tôi đã không thành công trong việc tìm ra cách cấu hình exim4 để thực hiện công việc này. Tôi hy vọng ai đó có thể cho tôi một ví dụ cấu hình để tôi có thể cắm tên máy chủ, tên người dùng, mật khẩu và "sử dụng ssl" để gửi nó qua thư máy chủ smtp.

Câu trả lời:


25

Cuối cùng tôi đã tìm thấy một bộ hướng dẫn chi tiết của Tony Scelfo thực sự hoạt động . Có vẻ như bạn phải sử dụng bảo mật lớp vận chuyển (TLS) trên cổng 587. Tôi chưa nhận được SSL SMTP để hoạt động.

Lần đầu tiên chạy sudo dpkg-reconfigure exim4-configvà sử dụng các tùy chọn cấu hình này:

  • Loại cấu hình thư chung : thư được gửi bởi smarthost; nhận được qua SMTP hoặc fetchmail
  • Tên thư hệ thống: <tên máy chủ của bạn>
  • Địa chỉ IP để lắng nghe các kết nối SMTP đến: 127.0.0.1
  • Các điểm đến khác mà thư được chấp nhận: <tên máy chủ của bạn>
  • Máy chuyển tiếp thư cho: <để trống này>
  • Địa chỉ IP hoặc tên máy chủ của smarthost gửi đi: mail.example.com : giáp87
  • Ẩn tên thư địa phương trong thư đi?
    • Có - tất cả thư gửi đi sẽ xuất hiện từ tài khoản gmail của bạn
    • Không - thư được gửi với tiêu đề tên người gửi hợp lệ sẽ giữ tên người gửi
  • Giữ số lượng truy vấn DNS tối thiểu (Quay số theo yêu cầu)? Không
  • Phương thức gửi cho thư cục bộ: <chọn phương thức bạn thích>
  • Chia tập tin cấu hình thành tập tin nhỏ? Có (bạn cần chỉnh sửa một trong các tệp tiếp theo)

Sau đó chạy sudo vi /etc/exim4/passwd.clientvà thêm các dòng sau cho máy chủ thư của bạn và bất kỳ bí danh nào nó có (tìm thấy thông qua nslookup). Thay thế <địa chỉ email> và <mật khẩu> bằng tài khoản bạn muốn định tuyến thư qua):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Khi bạn chỉnh sửa passwd.clienttệp, hãy chạy sudo update-exim4.confđể tích hợp các thay đổi của bạn vào cấu hình Exim4.

Chạy sudo /etc/init.d/exim4 restartvà đảm bảo rằng dịch vụ dừng lại và bắt đầu đúng cách. Nếu dịch vụ không thể khởi động lại, có thể đã xảy ra lỗi khi bạn chỉnh sửa passwd.clienttệp.

Nếu Exim4 khởi động lại, hãy tiếp tục và chạy sudo tail -f /var/log/exim4/mainlogđể xem nhật ký thư. Trong một cửa sổ khác, gửi email từ hệ thống của bạn và đảm bảo rằng bạn thấy một bản ghi đi cùng với R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16nó. Có X=TLSnghĩa là thư đang được gửi với bảo mật lớp vận chuyển là những gì bạn muốn.


1
Không cần phải "chia tệp cấu hình thành các tệp nhỏ" vì đây /etc/exim4/passwd.clientlà một tệp riêng biệt.
Chạy CMD

Xin lưu ý rằng việc chỉ định cổng SMTP có thể không hoạt động với tất cả các máy chủ thư. Nhưng exim4dù sao cũng sẽ sử dụng TLS với cổng SMTP mặc định nếu máy chủ cung cấp nó. Nó có thể được kiểm tra khi xem X=thông tin trong/var/log/exim4/mainlog
Chạy CMD

Xin vui lòng, chỉ cho tôi hướng chính xác. Tôi không muốn lặp lại một số câu hỏi. Điều gì xảy ra nếu tôi muốn tất cả người dùng đặt mật khẩu stmp của riêng họ trong thư mục HOME của họ? Exim4 sẽ tìm passwd.client khác nhau? Tx
Bác sĩ Beco

Nghe có vẻ như là một câu hỏi mới đối với tôi
Stephen Ostermiller

@DrBeco Nếu bạn có một câu hỏi cụ thể không cụ thể cho câu hỏi hoặc câu trả lời này, vui lòng hỏi nó như một câu hỏi .
Thomas Ward

5

Nếu ISP của bạn yêu cầu xác thực, bạn nên đặt dc_smarthost thành tên máy chủ thư và kết hợp cổng máy chủ mà ISP sử dụng và dc_eximconfig_configtype thành "smarthost" như vậy:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Sau đó, bạn có thể thêm thông tin đăng nhập của mình để /etc/exim4/passwd.clientthích:

mail.example.com:username:password

Sau đó, mọi thư được gửi qua máy chủ exim4 của bạn sẽ được chuyển qua máy chủ thư này.


10
Trong update-exim4.conf tôi đã đặt hai dấu hai chấm cho dòng smarthost, như trong dc_smarthost='mail.example.com::587'và nó đã tạo ra sự khác biệt! Cuối cùng bắt đầu gửi thư qua.
Marcos

+1 Đây là một lỗi rất phổ biến tôi đã thấy trên nhiều hướng dẫn.
TwystO

4

Điều này làm việc rất tốt cho tôi. ISP của tôi sử dụng cổng 25 và dc_smarthost='myisp.mail.server:25' sau khi thay đổi tệp này và ra lệnh:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Sau khi tôi thực hiện một thử nghiệm để gửi email thông qua mẫu cổ điển exim4 như:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

Và những dòng ok để hộp thư đến của my-usertrong my-domain-url.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.