У меня есть сценарий оболочки, который использует функцию sendmail для отправки электронной почты, код выглядит следующим образом
mailalert(){
sendmail -F Sender-Name -it <<END_MESSAGE
To: Recipient@example.com
Subject: Subject
Message
END_MESSAGE
}
Он запускается всякий раз, когда я вызываю эту функцию. Теперь у меня есть текстовый файл, который я хочу отправить, используя sendmail в качестве вложения или как сообщение в отправляемом электронном письме. Как я могу это сделать? Я пробовал много трюков, но ничего не работает. Пожалуйста помоги.
Введите uuencode /path/filename.txt | sendmail -s "subject" user@domain в своем терминале для отправки почты.
Замените «путь» на фактический путь к каталогу, в котором находится файл для прикрепления. Замените «filename.ext» на фактическое имя файла и расширение. Замените «тему» на строку темы, которую вы хотите, чтобы письмо было у вас. Замените «user @ domain» на адрес электронной почты получателя.Это фактический процесс отправки почты с приложением.
добавьте uuencode /path/filename.txt перед командой sendmail в ваш скрипт. Я имею в виду изменить его как
mailalert(){
uuencode /path/filename.txt
sendmail -F Sender-Name -it <<END_MESSAGE
To: Recipient@example.com
Subject: Subject
Message
END_MESSAGE
}
надежды, которые могут вам помочь.
После поиска многочисленных бесполезных страниц MAN и googling я, наконец, пришел к этому решению: Файл для отправки: test.csv
На Ubuntu у вас будет uuencode (AIX), предоставляемый пакетом , который вам может потребоваться установить (эквивалент Redhat - mutt).
uuencode test.csv test.csv | mail -v -s "Subject test" -r no-reply@mydomain.co.uk recepient@mydomain.co.uk
Самая большая проблема заключалась в объединении sendmail и вложения и в то же время настройка объекта. Также в AIX у меня нет опции -a attachment, как предлагает страница LINUX Man.
Вы также можете использовать mailx вместо mail с точно такими же параметрами.
При отправке почты, даже из командной строки, лучше всего использовать программу, предназначенную для этой цели, вместо прямого вызова sendmail. Хорошим универсальным почтовым клиентом командной строки является mutt; в частности, он имеет флаг командной строки для прикрепления файлов, что позволяет избежать громоздкого использования uuencode:
echo Test | mutt -s Test -a image.jpg -- firas@fkraiem.org
Как обычно, см. man mutt для информации об использовании.
Я создал ниже сценарий для присоединения файла CSV. Файл генерируется, но его обрезание заголовка / столбца имя CSV неправильно, а также есть еще один файл, который прикрепляется к электронной почте, а именно «ATT0001.txt» с каждым письмом. Что-то не так, что вы могли бы узнать здесь?
(
echo "From:"$1;
echo "To:"$2;
echo "Subject:"$3;
echo "MIME-Version: 1.0";
echo "Content-Type:multipart/mixed; boundary=\"B835649000072104Jul07\"";
echo "--B835649000072104Jul07";
echo "Content-Type: text/html; charset=\"UTF-8\"";
echo "Content-Transfer-Encoding: 7bit";
echo "Content-Disposition: inline";
echo "";
echo "$4";
echo "--B835649000072104Jul07";
echo "Content-Type: text/csv";
echo "Content-Transfer-Encoding: base64";
echo "Content-Disposition: attachment; filename=\"$5\"";
base64 "$5"
echo "--B835649000072104Jul07";
) | sendmail -t