Отправить электронное письмо в виде простого текста с одним вложенным текстом в формате mailx:
(
/usr/bin/uuencode attachfile.txt myattachedfilename.txt;
/usr/bin/echo "Body of text"
) | mailx -s 'Subject' youremail@gmail.com
Ниже та же команда, что и выше, без перевода строки
( /usr/bin/uuencode /home/el/attachfile.txt myattachedfilename.txt; /usr/bin/echo "Body of text" ) | mailx -s 'Subject' youremail@gmail.com
Убедитесь, что у вас есть файл /home/el/attachfile.txt
, определенный с этим содержанием:
<html><body>
Government discriminates against programmers with cruel/unusual 35 year prison
sentences for making the world's information free, while bankers that pilfer
trillions in citizens assets through systematic inflation get the nod and
walk free among us.
</body></html>
Если у вас нет uuencode, прочитайте это: https://unix.stackexchange.com/questions/16277/how-do-i-get-uuencode-to-work
В Linux отправьте электронное письмо в формате HTML с вложением в формате PDF с помощью sendmail:
Убедитесь, что у вас установлен ksh: yum info ksh
Убедитесь, что у вас установлен и настроен sendmail.
Убедитесь, что у вас установлен и доступен код uuencode: https://unix.stackexchange.com/questions/16277/how-do-i-get-uuencode-to-work
Создайте новый файл с именем test.sh
и поместите его в свой домашний каталог: /home/el
Введите следующий код в test.sh
:
#!/usr/bin/ksh
export MAILFROM="el@defiant.com"
export MAILTO="youremail@gmail.com"
export SUBJECT="Test PDF for Email"
export BODY="/home/el/email_body.htm"
export ATTACH="/home/el/pdf-test.pdf"
export MAILPART=`uuidgen` ## Generates Unique ID
export MAILPART_BODY=`uuidgen` ## Generates Unique ID
(
echo "From: $MAILFROM"
echo "To: $MAILTO"
echo "Subject: $SUBJECT"
echo "MIME-Version: 1.0"
echo "Content-Type: multipart/mixed; boundary=\"$MAILPART\""
echo ""
echo "--$MAILPART"
echo "Content-Type: multipart/alternative; boundary=\"$MAILPART_BODY\""
echo ""
echo "--$MAILPART_BODY"
echo "Content-Type: text/plain; charset=ISO-8859-1"
echo "You need to enable HTML option for email"
echo "--$MAILPART_BODY"
echo "Content-Type: text/html; charset=ISO-8859-1"
echo "Content-Disposition: inline"
cat $BODY
echo "--$MAILPART_BODY--"
echo "--$MAILPART"
echo 'Content-Type: application/pdf; name="'$(basename $ATTACH)'"'
echo "Content-Transfer-Encoding: uuencode"
echo 'Content-Disposition: attachment; filename="'$(basename $ATTACH)'"'
echo ""
uuencode $ATTACH $(basename $ATTACH)
echo "--$MAILPART--"
) | /usr/sbin/sendmail $MAILTO
Измените переменные экспорта в верхней части test.sh
, чтобы отразить ваш адрес и имена файлов.
Загрузите тестовый PDF-документ и поместите его в /home/el
, который называется pdf-test.pdf
Создайте файл с именем /home/el/email_body.htm и вставьте в него следующую строку:
<html><body><b>this is some bold text</b></body></html>
Убедитесь, что у файла PDF есть достаточные права доступа 755.
Запустить скрипт ./test.sh
Проверьте свой почтовый ящик, текст должен быть в формате HTML, а файл PDF автоматически интерпретируется как двоичный файл. Старайтесь не использовать эту функцию чаще, чем, скажем, 15 раз в день, даже если вы отправляете электронные письма себе, спам-фильтры в gmail могут занести в черный список домен, извергающий электронные письма, не давая вам возможности пропустить их. И вы обнаружите, что это больше не работает, или только пропускает вложение, либо электронное письмо не приходит вообще. Если вам нужно провести много тестов по этому вопросу, распределите их по дням, или вы будете помечены как спамер, и эта функция больше не будет работать.