Salve.
Ho dei sistemi da cui devo inviare mail da script.
Queste macchine non hanno accesso a internet ma ho un relay interno a cui farle puntare.
Il problema però è che questo funziona solo in ssl su porta 465
Una mail normale la invio con 'mail' o 'mailx', ma questi non mi consentono di specificare il mail server.
Allora modifico sendmail.cf mettendo 'DSmiomailserver'
ma non riesco a specificare la porta e, tantomeno, a specificargli che deve andare in ssl (non starttls)
o meglio
con mailx di slackware sembra che si può (con qualche parametro aggiunto con -S)
ma il server che ho è redhat e la versione di mailx presente non accetta questo parametro.
Come posso fare?
inviare mail da script su relay puntuale in smtps
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- ZeroUno
- Staff

- Messaggi: 5325
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
inviare mail da script su relay puntuale in smtps
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111- krisis
- Linux 4.x

- Messaggi: 1120
- Iscritto il: mar 25 gen 2005, 0:00
- Distribuzione: debian
- Località: Roma
Re: inviare mail da script su relay puntuale in smtps
Soluzione facile e veloce :
Installi e configuri ssmtp sulle macchine dalle quali devi spedire le mail.
Soluzione meno facile e veloce :
Installi e configuri un server smtp su ogni macchina.
Installi e configuri ssmtp sulle macchine dalle quali devi spedire le mail.
Soluzione meno facile e veloce :
Installi e configuri un server smtp su ogni macchina.
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
Re: inviare mail da script su relay puntuale in smtps
teoricamente, visto che le mail le devi inviare da script, potresti anche mandare comandi smtp e mail in pipe ad openssl:
echo -e "EHLO `hostname`\nMAIL FROM: blablabla" | openssl s_client -connect ipdelrelay:465 -quiet
tieni comunque conto che così invii "alla cieca", non hai riscontri sugli status code che ti ritorna il relay per tutto quello che gli mandi.
echo -e "EHLO `hostname`\nMAIL FROM: blablabla" | openssl s_client -connect ipdelrelay:465 -quiet
tieni comunque conto che così invii "alla cieca", non hai riscontri sugli status code che ti ritorna il relay per tutto quello che gli mandi.
- ZeroUno
- Staff

- Messaggi: 5325
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: inviare mail da script su relay puntuale in smtps
Alla fine me lo sono costruito da solo.
Se può servirvi:
sembra funzionare.
Se può servirvi:
Codice: Seleziona tutto
#!/bin/bash
#### DEFAULT VALUE
DOMAIN=${DOMAIN:-mydomain} # will be overwritten by the -E parameter
RELAY=${RELAY:-smtps://myrelay:465} # will be overwitten by the -R parameter
#### DOES NOT TOUCH
function usage(){
echo "
Usage:
$0 [-s <subject>] [-c <cc-address>] [-b <bcc-address>] [-r <from-address>] [-R <relay>] [-E <EHLO>] [-H <header: value>] [-I <messageid>] <to-address> <to-address> ...
-s <subject> Specify subject
-b <address> Send blind carbon copies to list. List should be a comma-separated list of names.
-c <address> Send carbon copies to list of users.
-r <address> Sets the From address.
-R <relay> Specify the relay host in format smtp://ip:port or smtps://ip:port
-I <messageid> Force message id
-E <EHLO> Set EHLO (host.domain)
-H <header: value> Add an header. To specify two header use another -H parameter
"
}
while [ $# -gt 0 ];do
case $1 in
"-s") SUBJECT="$2";shift 2;;
"-b") BCC=$(echo $2|sed 's/,/ /g');shift 2;;
"-c") CC=$(echo $2|sed 's/,/ /g');shift 2;;
"-r") FROM="$2";shift 2;;
"-R") RELAY="$2";shift 2;;
"-I") MESSAGEID="$2";shift 2;;
"-E") EHLO="$2";shift 2;;
"-H") HEADER="$HEADER$2\\n";shift 2;;
-*) echo "$1 non riconosciuto";usage;exit;;
*) TO="$TO $1";shift;;
esac
done
if [ -z "$TO" ];then usage;exit;fi
EHLO=${EHLO:-"`hostname`.$DOMAIN"}
FROM=${FROM:-"`whoami`@$EHLO"}
MESSAGEID=${MESSAGEID:-"`date +%s`@$EHLO"}
RCPTTO="$TO $CC $BCC"
PROTO=$(echo $RELAY|sed -r 's#^(smtps?)://.*#\1#')
PORT=$(echo $RELAY|sed -r 's#^smtps?://.*:([0-9]+)#\1#')
RELAY=$(echo $RELAY|sed -r 's#^smtps?://([^:]*):.*#\1#')
(
echo "EHLO $HOST"
echo "MAIL FROM: <$FROM>"
for RCPT in $RCPTTO;do
echo "RCPT TO: <$RCPT>"
done
echo "DATA"
echo "Subject: $SUBJECT"
echo "From: $FROM"
echo "To: $(echo $TO|sed 's/ /,/g')"
[ ! -z "$CC" ]&&echo "CC: $(echo $CC|sed 's/ /,/g')"
echo "Message-Id: $MESSAGEID"
echo -en "$HEADER"
echo ""
cat
echo "."
echo "QUIT"
)|(
if [ "$PROTO" == "smtps" ];then
openssl s_client -ign_eof -connect $RELAY:$PORT -quiet
else
nc $RELAY $PORT
fi
)Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111