Як насправді надсилається пошта, коли я використовую команду Linux «пошта»?


17

Який обліковий запис електронної пошти використовується для надсилання електронного листа при використанні mailкоманди з терміналу linux, як у:

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

Якщо електронні листи не надсилаються, чи потрібно вказати ім’я користувача та пароль електронної адреси, що надсилається? У всіх mailпідручниках, які я прочитав, нічого не вказано про адресу відправника.

Редагувати: Отже, якщо я отримую повідомлення про помилку внаслідок "Надсилання пошти у віддалені домени не підтримується", чи означає це, що мій провайдер заблокував надсилання електронних листів? Чи є спосіб обходити це? Спасибі.

Відповіді:


12

Який обліковий запис електронної пошти використовується для надсилання електронної пошти при використанні команди пошти з терміналу linux, як у:

У конфігураціях за замовчуванням - це той самий обліковий запис, який ви використовували для входу. На вашому комп'ютері встановлена ​​програма поштового сервера (MTA); зазвичай це Postfix або Exim4, іноді Sendmail або qmail.

Адреса електронної пошти цього облікового запису є або , де можна отримати FQDN . Однак зараз ви не можете отримувати пошту до цього облікового запису, оскільки MTA налаштовано на "локальну пошту" (як зазначено в повідомленні про помилку нижче) і не прийматиме повідомлення ззовні.your-login@hostnameyour-login@fqdnhostname -f

Редагувати: Отже, якщо я отримую повідомлення про помилку внаслідок "Надсилання пошти у віддалені домени не підтримується", чи означає це, що мій провайдер заблокував надсилання електронних листів? Чи є спосіб обходити це?

Ні; це повідомлення про помилку повертається вашим власним комп’ютером. Поштовий сервер налаштований лише для передачі локальної пошти - від одного користувача до іншого (найчастіше - від демона cron, якщо не працює). Зазвичай ці повідомлення йдуть до і зчитувальні з допомогою , , або аналогічні програми. (IIRC, Thunderbird також мав можливість імпортувати локальні котушки пошти.)/var/mail/loginmailmuttre-alpine

Не важко перенастроїти поштовий сервер для надсилання та отримання пошти на / з інших сайтів; залежно від встановленого MTA та дистрибутива Linux, може бути достатньо навіть однієї команди: наприклад, dpkg-reconfigure postfixякщо система є Debian із Postfix.

Однак я здогадуюсь, що ви користуєтеся цим на особистому комп’ютері, тому краще буде замість цього використовувати зовнішній поштовий обліковий запис - наприклад, вашу адресу Gmail, якщо у вас є. Дізнайтеся, який MTA встановлений (на Ubuntu / Debian, dpkg -S /usr/sbin/sendmailскажу вам), а потім google для program-name relay gmailпідручника "".

Як варіант, встановити MTA, спеціально розроблену для ретрансляції; msmtpі esmtpце хороший вибір і простий у налаштуванні.


Дякую за всю допомогу. Команда pastebin, яку ви запропонували, закінчилася задоволенням моїх потреб. Я буду працювати над налаштуванням смарт-хосту для передачі пошти.
user001

4

Наприклад, це ім'я облікового запису та ім'я хоста користувача, що надсилає root@myserver. Це не обов'язково фактична поштова скринька, яка може отримувати електронну пошту ззовні.


2
@ user001 Чи допомагає це ?
Даніель Бек

2
@ user001: У таких випадках ви можете ознайомитися з пастбінами , деякі з яких зручні у використанні з командного рядка. Наприклад, curl -Fsprunge=\<- http://sprunge.us < myfile.
користувач1686

1
@ user001: У вас exim4демон працює? Чи є в sudo mailqсписку повідомлення? Ви перевірили журнали сервера відправки ( /var/log/exim4/mainlog) та одержувача (якщо можливо)?
користувач1686

1
@ user001: Можливо, ваш Інтернет-провайдер блокує з'єднання. Особливо часто це стосується домашніх з'єднань - все до порту 25 просто випадає, щоб зменшити величезну кількість спаму, що надсилається зараженими ПК. (Ви все одно можете налаштувати ретрансляцію , яка використовує інший порт та автентифікацію SMTP.)
user1686,

1
@ user001: Відтворення відбувається через інший поштовий сервер (іноді його називають "smarthost"). Ваші мережеві адміністратори можуть допомогти у цьому, якщо в академії є власний поштовий домен. Якщо ні, ви можете налаштувати ваш сервер для надсилання з вашої пошти Gmail або подібної; навчальні посібники тут .
користувач1686

4

Команда пошти надсилає пошту під поточний рахунок, тобто ім'я користувача @ домен; проте зазвичай постачальники послуг Інтернету заважають користувачам запускати власні поштові сервери (блокуючи відповідні порти), щоб уникнути спаму, і тому ваш електронний лист не надсилається.

Але проблема надсилання також може бути пов’язана з конфігурацією вашої машини.

Редагувати: увімкнення пошти для надсилання електронних листів, наприклад, з Gmail Введіть наступну інформацію у свій файл ~ / .mailrc, який надає базову конфігурацію пошти. Однак переконайтеся, що цей файл доступний лише вам (використовуючи 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
}

У такому випадку повідомлення електронної пошти надходитиме від "name@gmail.com".


@ user001: Ви хочете просто мати можливість надсилати електронні листи (наприклад, зі скриптів) або також отримувати їх?
Каролос

Просто, щоб мати можливість відправити повідомлення зі сценарію. Спасибі.
user001

2
Зауважте, що цей mailrcсинтаксис є специфічним для heirloom-mailx. Деякі системи можуть поставлятися з GNU mailutilsабо BSD mailx, обидві можуть скаржитися на синтаксичні помилки. (Якщо це трапиться, я пропоную встановити heirloom-mailx- або навіть краще, muttабо re-alpine.)
user1686

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.