Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: theshit в Apr 17, 2013, 10:57



Титла: bash script за email
Публикувано от: theshit в Apr 17, 2013, 10:57
Здравейте момчета и момичета,
някой може ли да ми помогне, с един bash script? Искам да го направя готов шаблон за мейл, намерих това, но не ми върши много работа:

Код:
#!/bin/bash
# script to send simple email
# email subject
SUBJECT="SET-EMAIL-SUBJECT"
# Email To ?
EMAIL="admin@somewhere.com"
# Email text/message
EMAILMESSAGE="/tmp/emailmessage.txt"
echo "This is an email message test"> $EMAILMESSAGE
echo "This is email text" >>$EMAILMESSAGE
# send an email using /bin/mail
/bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE

идеята е следната ... да направя готов шаблон за мейл и да го вкарам в bash script обаче мейла да е променлив, примерно ./mail.sh some@mail.tld и да изпраща готовия мейл на определения адрес след командата. Как може да стане, някой help?  :)
 


Титла: Re: bash script за email
Публикувано от: neter в Apr 17, 2013, 11:09
Освен променливия email адрес, има ли друга причина, поради която казваш, че този скрипт не ти върши работа? Ако е само променливият email адрес, то замести
Цитат
EMAIL="admin@somewhere.com"
със
Цитат
EMAIL=$1
и си готов.


Титла: Re: bash script за email
Публикувано от: theshit в Apr 17, 2013, 11:12
Благодаря ти адски много  ;) [_]3


Титла: Re: bash script за email
Публикувано от: theshit в Apr 17, 2013, 11:16
Код:
#!/bin/bash
mail -s "Subject" $1 << END_MAIL
Hello,
that's the email
can write some
more text ....
END_MAIL

Ей така стана, много лесно.


Титла: Re: bash script за email
Публикувано от: morbid_viper в Apr 22, 2013, 16:53
само за пълнота…
аз ползвам малко по-дълъг ред, в който можеш да навреш повече параметри

Код:
        env MAILRC=/dev/null LC_ALL=UTF-8 LC_CTYPE=UTF-8 \
        LC_LANG=bg_BG.UTF-8 from="Apache Digest <smailer@example.org>" \
        sendcharsets=utf-8 encoding=8bit smtp=192.168.0.1 mailx -n \
        -s "Apache restarted" user1@example1.org user2@example2.org < $MAILBODY

където, очевидно, $MAILBODY съдържа името на файла, в който се намира тялото на писмото.

между другото, ако искаш да пращаш на повече от един е-адрес, може да замениш „user1@example1.org user2@example2.org“ с $@, вместо твоето $1. Това ще ти върне всички параметри от командния ред, вместо само първия, но и ще работи дори да си задал само един.