Wyślij e-mail w postaci zwykłego tekstu z jednym załącznikiem w postaci zwykłego tekstu za pomocą mailx:
(
/usr/bin/uuencode attachfile.txt myattachedfilename.txt;
/usr/bin/echo "Body of text"
) | mailx -s 'Subject' youremail@gmail.com
Poniżej znajduje się to samo polecenie, co powyżej, bez nowych linii
( /usr/bin/uuencode /home/el/attachfile.txt myattachedfilename.txt; /usr/bin/echo "Body of text" ) | mailx -s 'Subject' youremail@gmail.com
Upewnij się, że masz plik /home/el/attachfile.txt
zdefiniowany z tą zawartością:
<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>
Jeśli nie masz uuencode, przeczytaj to: /unix/16277/how-do-i-get-uuencode-to-work
W systemie Linux wysyłaj treść wiadomości e-mail HTML z załącznikiem PDF za pomocą sendmaila:
Upewnij się, że masz zainstalowany Ksh: yum info ksh
Upewnij się, że masz sendmaila zainstalowany i skonfigurowany.
Upewnij się, że masz zainstalowany i dostępny uuencode: /unix/16277/how-do-i-get-uuencode-to-work
Utwórz nowy plik o nazwie test.sh
i umieść go w swoim katalogu domowym:/home/el
Wprowadź następujący kod 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
Zmień zmienne eksportu na górze test.sh
aby odzwierciedlały Twój adres i nazwy plików.
Pobierz testowy dokument pdf i włóż go /home/el
pdf-test.pdf
Utwórz plik o nazwie /home/el/email_body.htm i umieść w nim następujący wiersz:
<html><body><b>this is some bold text</b></body></html>
Upewnij się, że plik pdf ma wystarczające uprawnienia 755.
Uruchom skrypt ./test.sh
Sprawdź swoją skrzynkę odbiorczą, tekst powinien być w formacie HTML, a plik pdf automatycznie interpretowany jako plik binarny. Uważaj, aby nie używać tej funkcji częściej niż powiedzmy 15 razy dziennie, nawet jeśli wysyłasz wiadomości e-mail do siebie, filtry antyspamowe w Gmailu mogą umieścić na czarnej liście domeny wyrzucające e-maile bez możliwości przepuszczenia ich. Przekonasz się, że to już nie działa, albo tylko przepuszcza załącznik, albo e-mail w ogóle nie przychodzi. Jeśli musisz przeprowadzić wiele testów, rozłóż je na kilka dni, w przeciwnym razie zostaniesz oznaczony jako spamer i ta funkcja nie będzie działać.