Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[solaris] commande pour envoyer un mail via smtp ?

6 réponses
Avatar
John Deuf
Bonjour,

Sur un serveur Sun, j'ai une sauvegarde sur bande qui se fait tous les
jours. J'aimerais envoyer le log sur un compte mail. Le serveur mail est
un Microsoft Exchange.

Quelqu'un connait une commande ou un utilitaire pour rajouter ça au script
?

Merci d'avance ;-)

--
John Deuf

6 réponses

Avatar
Pascal Bourguignon
John Deuf writes:
Sur un serveur Sun, j'ai une sauvegarde sur bande qui se fait tous les
jours. J'aimerais envoyer le log sur un compte mail. Le serveur mail est
un Microsoft Exchange.

Quelqu'un connait une commande ou un utilitaire pour rajouter ça au script
?


Tu as le choix entre plusieurs.

En général, il y a le simple MUA mail(1):

mail -s "log sauvegarde $(date +%Y%m%d)" < sauvegarde.log

Mais on peut préferer utiliser directement sendmail(1):

( echo "Subject: log sauvegarde $(date +%Y%m%d)" ;
echo "Priority: bulk" ;
echo "" ;
cat sauvegarde.log ) | sendmail

car comme tu le vois, ça permet de construire le message en détail (on
peut par exemple compose un message MIME avec pièce jointes etc avec
des outils comme metamail).


--
__Pascal Bourguignon__ http://www.informatimago.com/
Cats meow out of angst
"Thumbs! If only we had thumbs!
We could break so much!"

Avatar
John Deuf
Pascal Bourguignon :

Tu as le choix entre plusieurs.
En général, il y a le simple MUA mail(1):
Mais on peut préferer utiliser directement sendmail(1):


Super ! Merci.

Donc j'ai le choix entre la commande mail ou sendmail.
Les deux fonctionnent directement avec un serveur SMTP ?
À quel moment j'entre l'adresse du serveur ?

--
John Deuf

Avatar
Thomas Baruchel
Le 10-06-2005, John Deuf a écrit :
Les deux fonctionnent directement avec un serveur SMTP ?
À quel moment j'entre l'adresse du serveur ?


si tu veux fonctionner avec un serveur SMTP, tu peux utiliser
un truc comme msmtp (c'est un client SMTP simple à configurer
et léger; le serveur SMTP est mis dans un fichier ~/.msmtprc)
qui correspond sans doute davantage à ce que tu as l'air de
chercher, mais cela ne te dispensera sans doute pas d'un logiciel
plus à même de mettre en forme le fichier à expédier.

Cordialement,

--
Thomas Baruchel

Avatar
John Deuf
Thomas Baruchel :

si tu veux fonctionner avec un serveur SMTP, tu peux utiliser
un truc comme msmtp (c'est un client SMTP simple à configurer
et léger; le serveur SMTP est mis dans un fichier ~/.msmtprc)
qui correspond sans doute davantage à ce que tu as l'air de
chercher, mais cela ne te dispensera sans doute pas d'un logiciel
plus à même de mettre en forme le fichier à expédier.


Ok.
Mais alors comment font mail et sendmail pour envoyer leurs courrier ? Ils
ont un serveur SMTP intégré ?

--
John Deuf

Avatar
Rakotomandimby (R12y) Mihamina
John Deuf :
Mais alors comment font mail et sendmail pour envoyer leurs courrier ? Ils
ont un serveur SMTP intégré ?



mail utilise le MTA installé sur ton système.


sendmail est émulé par la plupart des MTA que j'ai croisé, et c'est un
MTA, dont le métier est de causer en SMTP.


fr.comp.mail.serveurs est aussi un bon endroit pour en discuter.


--
Miroir de logiciels libres http://www.etud-orleans.fr
Développement de logiciels libres http://aspo.rktmb.org/activites/developpement
Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)

Avatar
Pascal Bourguignon
John Deuf writes:

Thomas Baruchel :

si tu veux fonctionner avec un serveur SMTP, tu peux utiliser
un truc comme msmtp (c'est un client SMTP simple à configurer
et léger; le serveur SMTP est mis dans un fichier ~/.msmtprc)
qui correspond sans doute davantage à ce que tu as l'air de
chercher, mais cela ne te dispensera sans doute pas d'un logiciel
plus à même de mettre en forme le fichier à expédier.


Ok.
Mais alors comment font mail et sendmail pour envoyer leurs courrier ? Ils
ont un serveur SMTP intégré ?


LE sendmail est un serveur SMTP, et il a ce point d'entrée qui permet
de placer un message dans la queue.

Les autres serveurs SMTP fournissent une commande sendmail équivalente.

Si le serveur sendmail n'est pas configuré ou activé, effectivement il
vaudrait mieux envoyer le message par SMTP directement, avec msmtp.
Une autre solution serait: mini_sendmail (mais je crois qu'il faudrait
le modifier car il est prévu au départ pour parler au serveur SMTP
local). Ou utiliser le script suivant (changer smtp_server et local_name).

#!/bin/bash
#*****************************************************************************
#FILE: smtp.sh
#LANGUAGE: sh
#SYSTEM: POSIX
#USER-INTERFACE: NONE
#DESCRIPTION
#
# Implements a naive SMTP client.
#
#AUTHORS
# <PJB> Pascal Bourguignon
#MODIFICATIONS
# 2004-03-01 <PJB> Created.
#BUGS
#LEGAL
# GPL
#
# Copyright Pascal Bourguignon 2004 - 2004
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version
# 2 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
#*****************************************************************************
smtp_server=localhost
local_name=localhost
if [ "$1" = "--log" ] ; then shift ; traceìho ; else trace=true ; fi
from="$1" ; shift # the rest of arguments are envelop recipients
log=/dev/tty
message=/tmp/message.$$
trap "rm $message" 0
cat>$message
(
read line 0<&3 ; $trace "$line">$log
case "$line" in 2*) ;; *) echo "QUIT" 1>&3 ; exit 0 ;; esac
echo "HELO $local_name" 1>&3
read line 0<&3 ; $trace "$line">$log
case "$line" in 2*) ;; *) echo "QUIT" 1>&3 ; exit 0 ;; esac
echo "MAIL FROM: <${from}>" 1>&3
read line 0<&3 ; $trace "$line">$log
case "$line" in 2*) ;; *) echo "QUIT" 1>&3 ; exit 0 ;; esac
ok=0
for recipient ; do
echo "RCPT TO: <${recipient}>" 1>&3
read line 0<&3 ; $trace "$line">$log
case "$line" in
2*) ok=1 ;;
*) echo "Cannot send to ${recipient}">$log ;;
esac
done
if [ $ok -ne 0 ] ; then
echo "DATA" 1>&3
read line 0<&3 ; $trace "$line">$log
case "$line" in 3*) ;; *) echo "QUIT" ; exit 0 ;; esac
while read line ; do
case "$line" in
.*) echo ".$line" 1>&3 ;;
*) echo "$line" 1>&3 ;;
esac
done < $message
echo "." 1>&3
read line 0<&3 ; $trace "$line">$log
case "$line" in
2*) [ "$trace" != ":" ] && echo "Message sent">$log ;;
*) echo "Could not send the emssage.">$log ;;
esac
fi
echo "QUIT" 1>&3
) 3<>/dev/tcp/$smtp_server/25
exit 0
#### smtp.sh -- -- ####



--
__Pascal Bourguignon__ http://www.informatimago.com/

There is no worse tyranny than to force a man to pay for what he does not
want merely because you think it would be good for him. -- Robert Heinlein