Отправьте текстовое электронное письмо с одним вложенным текстом в формате 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, прочитайте это: /unix/16277/how-do-i-get-uuencode-to-work
В Linux отправьте основную электронную почту в формате HTML с вложением PDF с помощью sendmail:
Убедитесь, что у вас установлен ksh: yum info ksh
Убедитесь, что у вас установлен и настроен sendmail.
Убедитесь, что у вас установлен и доступен код uuencode: /unix/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 могут занести в черный список домен, извергающий электронные письма, не давая вам возможности пропустить их. И вы обнаружите, что это больше не работает, или только пропускает вложение, либо электронное письмо вообще не приходит. Если вам нужно много тестировать по этому поводу, распределите их по дням, или вы будете помечены как спамер, и эта функция больше не будет работать.