Как отправить письмо с вложением по постфиксу из командной строки?


10

Я только что установил новый сервер Ubuntu 10.04 LTS на линоде для себя. Следовал отличной инструкции по адресу: здесь, чтобы завершить установку некоторых основных вещей, включая postfix.

Я пытаюсь найти способ отправить электронное письмо на мой адрес электронной почты с вложением, но не могу найти как. Уже подтверждено, что электронная почта может попасть на мою учетную запись Gmail.

В конце я должен использовать Mutt для отправки электронного письма с вложениями, вероятно, SendEmails также преуспеет , но мне интересно, как сделать то же самое в postfix из командной строки?

Заранее большое спасибо за этот тупой вопрос.

Ответы:


14

Почему это должно быть postfixнапрямую? mailx -a, muttили mutt -aтакже будет использовать sendmailинтерфейс - если вы не настроите их для SMTP.

echo "Это тестовое сообщение" | Mutt -s Test -a foo.zip - $ USER
echo "Это тестовое сообщение" | mail -s Test -a foo.zip $ USER

(Обратите внимание, что в bsd-mailx опция указана -Aвместо.)


Во всяком случае, вот пример "postfix".

Замените $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, я думаю. Это происходит в семейной реликвии.
user1686

7

Postfix - агент пересылки почты (MTA) . Его задача - справиться с доставкой почты: забрать ее и отправить в следующую точку маршрута. Postfix - почтовый работник, чья работа - взять конверт и (с помощью своих коллег) доставить его получателю.

Здесь вы просите секретарскую работу: собирать документы, чтобы положить их в конверт. Это не работа Postfix: это работа почтового агента пользователя (MUA) . Вы можете написать сырой MUA, который просто собирает кусочки, чтобы сделать письмо в несколько строк оболочки, как это делали гравити , но Mutt действительно хороший инструмент для этой задачи.


4

Из командной строки мне нравится использовать «sendemail», который на Ubuntu / Debian может быть установлен из командной строки следующим образом:

apt-get install sendemail

Тогда вы можете просто сказать ему использовать localhost (Postfix) в качестве MTA.

На самом деле я только что заметил, что localhost: 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" -a pine.rpm.gz root @ localhost Enter
Это программное обеспечение Pine, которое вы запрашивали Enter
.Enter
СРВ
[gawad @ centos Desktop] $ 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.