Thư thực sự được gửi như thế nào khi tôi sử dụng lệnh Linux Thư mail Linux?


17

Tài khoản email nào được sử dụng để gửi email khi sử dụng maillệnh từ thiết bị đầu cuối linux như trong:

echo "Body of email" | mail -s "Subject" abc@def.com

Nếu các email không được gửi, người ta có cần chỉ định tên người dùng và mật khẩu của một địa chỉ email gửi không? Tất cả các mailhướng dẫn tôi đã đọc chỉ định không có gì về địa chỉ người gửi.

Chỉnh sửa: Vì vậy, nếu tôi nhận được thông báo lỗi về hiệu ứng "Gửi thư đến các miền từ xa không được hỗ trợ", điều này có nghĩa là ISP của tôi đã chặn gửi email? Có cách nào để khắc phục điều này? Cảm ơn.

Câu trả lời:


12

Tài khoản email nào được sử dụng để gửi email khi sử dụng lệnh mail từ thiết bị đầu cuối linux như trong:

Trong cấu hình mặc định, đó chính là tài khoản mà bạn đã sử dụng để đăng nhập. Máy tính của bạn đã cài đặt chương trình máy chủ thư (MTA); thường là Postfix hoặc Exim4, đôi khi là Sendmail hoặc qmail.

Địa chỉ email của tài khoản này là hoặc , nơi FQDN có thể được lấy từ đó . Tuy nhiên, ngay bây giờ bạn không thể nhận thư đến tài khoản này, vì MTA được định cấu hình cho "chỉ thư cục bộ" (như thông báo lỗi bên dưới nói) và sẽ không chấp nhận thư từ bên ngoài.your-login@hostnameyour-login@fqdnhostname -f

Chỉnh sửa: Vì vậy, nếu tôi nhận được thông báo lỗi về hiệu ứng "Gửi thư đến các miền từ xa không được hỗ trợ", điều này có nghĩa là ISP của tôi đã chặn gửi email? Có cách nào để khắc phục điều này?

Không; thông báo lỗi này được trả về bởi máy tính của bạn. Máy chủ thư được cấu hình để chỉ chuyển thư cục bộ - từ người dùng này sang người dùng khác (phổ biến nhất là từ trình nền cron nếu một cronjob không thành công). Thông thường những thông điệp này đi đến và có thể được đọc bằng , , , hoặc các chương trình tương tự. (IIRC, Thunderbird cũng có khả năng nhập các cuộn thư cục bộ.)/var/mail/loginmailmuttre-alpine

Không khó để cấu hình lại máy chủ thư để gửi và nhận thư đến / từ các trang web khác; tùy thuộc vào MTA được cài đặt và trên bản phân phối Linux, thậm chí một lệnh duy nhất có thể là đủ: ví dụ: dpkg-reconfigure postfixnếu hệ thống là Debian có Postfix.

Tuy nhiên, tôi đoán bạn đang sử dụng điều này trên máy tính cá nhân, vì vậy sẽ tốt hơn nếu sử dụng tài khoản thư bên ngoài - ví dụ: địa chỉ Gmail của bạn nếu bạn có. Tìm hiểu MTA nào đã được cài đặt (trên Ubuntu / Debian, dpkg -S /usr/sbin/sendmailsẽ cho bạn biết), sau đó google tìm " program-name relay gmail" cho hướng dẫn.

Ngoài ra, cài đặt một MTA được thiết kế đặc biệt để chuyển tiếp; msmtpesmtplà lựa chọn tốt và dễ dàng để cấu hình.


Cảm ơn vì sự giúp đỡ. Lệnh pastebin mà bạn đề nghị đã kết thúc đáp ứng nhu cầu của tôi. Tôi sẽ làm việc để thiết lập một smarthost để chuyển tiếp thư.
dùng001

4

Ví dụ, tên tài khoản và tên máy chủ của người dùng gửi root@myserver. Đó không nhất thiết là một hộp thư thực sự có thể nhận email từ bên ngoài.


2
@ user001 Điều này có giúp gì không?
Daniel Beck

2
@ user001: Trong những trường hợp như vậy, bạn có thể xem qua các pastebins , một số trong đó dễ sử dụng từ dòng lệnh. Ví dụ , curl -Fsprunge=\<- http://sprunge.us < myfile.
dùng1686

1
@ user001: Bạn có exim4chạy daemon không? Có sudo mailqliệt kê tin nhắn? Bạn đã kiểm tra nhật ký của máy chủ gửi ( /var/log/exim4/mainlog) và người nhận (nếu có thể) chưa?
dùng1686

1
@ user001: Có thể ISP của bạn đang chặn kết nối. Điều này đặc biệt phổ biến trên các kết nối gia đình - mọi thứ đến cổng 25 chỉ đơn giản là bị loại bỏ, nhằm giảm lượng thư rác khổng lồ được gửi bởi các PC bị nhiễm. ( Tuy nhiên, bạn vẫn có thể định cấu hình chuyển tiếp , sử dụng xác thực cổng và xác thực SMTP khác nhau.)
user1686

1
@ user001: Chuyển tiếp xảy ra thông qua một máy chủ thư khác (đôi khi được gọi là "smarthost"). Quản trị viên mạng của bạn có thể giúp với điều này, nếu học viện có tên miền thư riêng. Nếu không, bạn có thể định cấu hình máy chủ của mình để gửi từ Gmail hoặc hộp thư tương tự; hướng dẫn ở đây .
dùng1686

4

Lệnh mail sẽ gửi thư trong tài khoản hiện tại, tức là tên người dùng @ domain; tuy nhiên, thông thường các nhà cung cấp dịch vụ internet ngăn người dùng chạy các máy chủ thư của riêng họ (bằng cách chặn các cổng có liên quan) để tránh spam và do đó email của bạn không được gửi.

Nhưng vấn đề gửi cũng có thể liên quan đến cấu hình máy của bạn.

Chỉnh sửa: cho phép thư để gửi email từ ví dụ: gmail. Đặt thông tin sau vào tệp ~ / .mailrc, cung cấp cấu hình cơ sở cho thư. Tuy nhiên, hãy đảm bảo rằng tệp này chỉ có thể truy cập được đối với bạn (sử dụng chmod 600 ~ / .mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

Trong trường hợp đó, email sẽ đến từ "name@gmail.com".


@ user001: Bạn có muốn chỉ có thể gửi thư (ví dụ từ tập lệnh) hoặc cũng có thể nhận chúng không?
Karolos

Chỉ để có thể gửi tin nhắn từ một kịch bản. Cảm ơn.
dùng001

2
Lưu ý rằng mailrccú pháp này là cụ thể heirloom-mailx. Một số hệ thống có thể đi kèm với GNU mailutilshoặc BSD mailx, cả hai đều phàn nàn về lỗi cú pháp. (Nếu điều đó xảy ra, tôi khuyên bạn nên cài đặt heirloom-mailx- hoặc thậm chí tốt hơn, mutthoặc re-alpine.)
user1686

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.