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.net
nhưSMART_HOST
chỉ 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.net
không phải là những gì tôi có trong SMART_HOST
bộ chỉ thị của mình . Đây là MX
má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.net
má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 mailertable
là 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.mc
tệ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àosendmail.mc
tậ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/mailertable
tậ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.