Cách định cấu hình sendmail để chuyển tiếp qua một máy chủ cụ thể


11

Tôi có một thiết lập máy chủ gia đình nhỏ phía sau modem cáp của mình (truyền thông bresnan). Tôi muốn hộp này có thể gửi email (không nhận) để nhận thông báo và không có gì.

Những gì tôi đã làm:

  • Tôi đã cài đặt và cấu hình sendmail.
  • Tôi đã thêm vào mail.bresnan.netnhư SMART_HOSTchỉ thị của tôi .

Điều tôi tin là vấn đề là

Khi tôi cố gắng gửi email, tôi nhận được những điều sau trong nhật ký thư của mình:

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<aburns@bresnan.net>, 
  size=397, class=0, nrcpts=1,
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<my@work-address.com>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<my@work-address.com>, ctladdr=<aburns@bresnan.net>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

Bạn có thể thấy nơi tin nhắn được chấp nhận để gửi bởi máy chủ sendmail của tôi, sau đó nơi nó cố gắng chuyển đến máy chủ của bresnan và nó hết thời gian.

Đây là nơi câu hỏi của tôi là. Độc giả Asstute sẽ nhận thấy đó pmx0.bresnan.netkhông phải là những gì tôi có trong SMART_HOSTbộ chỉ thị của mình . Đây là MXmáy chủ (bên ngoài?) Cho tên miền bresnan.com/net. Rõ ràng bresnan đã cấu hình mạng của họ để bạn không thể truy cập máy chủ này từ bên trong mạng của họ và thay vào đó phải sử dụng mail.bresnan.netmáy chủ (mà tôi có thể kết nối). Vấn đề là tôi không biết làm thế nào để gửi sendmail sử dụng máy chủ này chứ không phải tên miền .

Những gì tôi đã cố gắng

  • Đặt mục nhập máy chủ để máy chủ pmx0 trỏ đến địa chỉ IP thư. Điều này không hoạt động, điều này có nghĩa là sendmail rõ ràng đang thực hiện một truy vấn MX để tìm máy chủ trả về IP, do đó không cần phải giải quyết DNS 'bình thường' để tệp máy chủ không bao giờ bị liên quan.

Khắc phục (cho tất cả thư gửi đi):

Một lần nữa, đạo cụ đi đến webmin (xem ghi chú bên dưới) để giúp tôi tìm hiểu điều này. Nếu bạn nhập smarthost của mình với dấu ngoặc vuông hướng dẫn sendmail không thực hiện tra cứu MX, vì vậy: define('SMART_HOST','[69.145.248.18]')(Khắc phục dấu ngoặc kép-> backticks) thực sự hoạt động mà không cần bảng gửi thư.

Khắc phục (đối với các miền cụ thể):

Như được chỉ ra dưới đây thiết lập một mailertablelà bắt buộc. Tuy nhiên, như được chỉ ra trong trang man , tính năng này cũng cần được bật trong sendmail.mctệp của bạn .

Cũng lưu ý rằng tuyến đường gửi thư không buộc sendmail sử dụng máy chủ được chỉ định cho tất cả các hoạt động, nó dựa trên địa chỉ của người nhận. Điều này thực sự ổn với tôi vì tôi chỉ cần gửi đến một vài tên miền (gmail, google lưu trữ và công việc của tôi).

Tóm tắt :

  • Thêm FEATURE('mailertable')vào sendmail.mctập tin của bạn . (lưu ý rằng trích dẫn đầu tiên phải là một backtick.
  • Tạo /etc/mail/mailertabletập tin của bạn (Xem trang người đàn ông )
  • Tạo một mapfile: sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Xây dựng lại cấu hình của bạn make -C /etc/mail
  • Khởi động lại sendmail: service sendmail restart

LƯU Ý: Tôi đánh giá cao đề nghị sử dụng webmin để chỉnh sửa / xây dựng lại những tập tin này. Nếu không có nó, tôi sẽ phát điên khi cố gắng tìm ra lý do tại sao tập tin mailertable của tôi bị bỏ qua.


Chúng tôi có thể xem sendmail.mc của bạn không?
larsks

Khi bạn thực hiện các thay đổi đối với tệp cấu hình sendmail.mc, bạn có khởi động lại sendmail sau mỗi thay đổi không?
ewwhite

Câu trả lời:


7

Bạn có thể tìm kiếm xung quanh tra cứu MX bằng cách thêm một mục ngắn vào /etc/mail/mailertabletệp sendmail của bạn .

Nội dung của tệp có thể có một dòng như:

bresnan.net       esmtp:[69.145.248.18]

Lưu tệp và khởi động lại sendmail (hoặc xây dựng lại sendmail.cf của bạn nếu nó phải được thực hiện thủ công).


2
Câu trả lời của bạn đã đúng; tuy nhiên tôi đã phải thực hiện một số bước bổ sung. Đối với những người khác gặp phải vấn đề này xem chỉnh sửa của tôi ở trên.
ErebusBat
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.