Як надіслати електронний лист із вкладенням поштовим фіксом з командного рядка?


10

Я щойно налаштував для себе новий сервер Ubuntu 10.04 LTS на linode. Дотримуйтесь чудової інструкції за адресою: тут закінчується установка деяких основних речей, включаючи постфікс.

Я намагаюся з'ясувати спосіб надсилання електронної пошти на мою адресу gmail з додатком, але не можу знайти як. Вже підтверджено, що електронна пошта може дійти до мого облікового запису gmail.

Зрештою, я повинен використовувати mutt для надсилання електронного листа з вкладеннями, ймовірно, SendEmails також буде добре, але мені цікаво, як зробити те ж саме в Postfix з командного рядка?

Заздалегідь дякую за це німе питання.

Відповіді:


14

Чому це має бути postfixбезпосередньо? mailx -a, muttабо mutt -aтакож буде використовувати sendmailінтерфейс - якщо ви не налаштуєте їх для SMTP.

ехо "Це тестове повідомлення" | mutt -s Test -a foo.zip - $ USER
ехо "Це тестове повідомлення" | mail -s Test -a foo.zip $ USER

(Зауважте, у bsd-mailx -Aзамість цього параметр .)


У всякому разі, ось приклад "постфіксу".

Замініть $USER, тип вмісту та ім’я файлу, щоб відповідати вашому оточенню. Приклад передбачає, що ви надсилаєте повідомлення собі та маєте ZIP-файл foo.zipу поточному каталозі.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Створення багаточастинних повідомлень MIME, залишених читачем як вправа.)


mail -a foo.zipне додається foo.zipдо повідомлення, як із mutt.
Н.Р.

@ nicolai.rostov: mailя думаю, залежить від цього . Це робиться в heirloom-mailx.
користувач1686

7

Postfix - агент з передачі пошти (MTA) . Його завдання полягає в тому, щоб впоратися з доставкою пошти: забрати її та відправити до наступної точки на своєму маршруті. Postfix - поштовий працівник, завдання якого - взяти конверт і (за допомогою колег) перенести його одержувачу.

Те, що ви тут просите, - це секретарська робота: збирання документів, щоб помістити їх у конверт. Це не робота Postfix: це робота для агента користувача пошти (MUA) . Ви можете написати сирий MUA, який просто збирає шматки, щоб зробити пошту в декілька рядків оболонки, як це робило grawity , але Mutt справді хороший інструмент для цього завдання.


4

З командного рядка мені подобається використовувати "sendemail", який на ubuntu / debian можна встановити з командного рядка так:

apt-get install sendemail

Тоді ви можете просто сказати йому використовувати localhost (Postfix) як MTA.

Насправді я щойно помітив, що defaulthost: 25 є типовим:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Потім ви додаєте вкладення, використовуючи прапор -a:

sendemail -f sender@example.com -t recipient@example.com -m "This is the message" -u "This is the subject" -a file1.zip file2.zip

1

mailx 12.4 має можливість приєднання файлів:

-a файл
    Приєднайте даний файл до повідомлення.

Наприклад:

[gawad @ centos Desktop] $ mail -s "сосна" - корінь pine.rpm.gz @ localhost Enter
- це сосна програма, яку ви попросили Enter
.Enter
EOT
[gawad @ centos Desktop] $ 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.