259 votes

Comment envoyer du courrier depuis la ligne de commande ?

Comment envoyer du courrier depuis la ligne de commande ?

6voto

rog Points 1304
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com

donde filename est le même : il représente le fichier d'entrée et le fichier distant.

5voto

Evan Points 1318

Je n'ai jamais essayé mais il y a un mail commande qui peut envoyer du courrier. Voir courrier masculin .

Pour tester le courrier électronique local :

echo message | mail username@localhost

3voto

nicudotro Points 1556

Vous pouvez essayer ceci :

mail name@mailserver.com -s "Attached file" <<EOF                 
Hi

~| uuencode $HOME/filename.txt filename.txt

EOF

Il fonctionne avec GNU Mailutils Pour plus d'informations, consultez le site web.

3voto

Pavel Points 21

Exécuter :

sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf

Il faut y ajouter ce qui suit :

# The user that gets all the mails (UID < 1000, usually the admin)
root=yourusernameofgmail@gmail.com

# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also https://support.google.com/mail/answer/78799
mailhub=smtp.gmail.com:587

# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com

# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes

# Username/Password
AuthUser=yourusernameofgmail
AuthPass=yourGmailPassowrd
AuthMethod=LOGIN

# Email 'From header's can override the default domain?
FromLineOverride=yes

Exécuter :

sudo -H gedit /etc/ssmtp/revaliases

Entrez là :

root:yourusernameofgmail@gmail.com:smtp.gmail.com:587

Activer "applications moins sûres" sur Gmail :
https://support.google.com/accounts/answer/6010255?hl=en

Testez-le en exécutant la commande suivante dans le terminal :

echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`

1voto

mroach Points 533

Je veux ajouter un autre moyen assez simple mais intéressant de le faire, fourni par AWS ( lien )

Vous devez donc préparer ce fichier texte, le sauvegarder sous le nom de input.txt . N'oubliez pas de modifier les valeurs :

  • Remplacez exemple.com par votre domaine d'envoi.

  • Remplacez Base64EncodedSMTPUserName par votre nom d'utilisateur SMTP codé en base64.

  • Remplacez Base64EncodedSMTPPassword par votre mot de passe SMTP codé en base64.

  • Remplacez sender@example.com par l'adresse électronique à partir de laquelle vous envoyez votre message. Cette identité doit être vérifiée.

  • Remplacez recipient@example.com par l'adresse électronique de destination. Si votre compte Amazon SES est encore dans le bac à sable, cette adresse doit être vérifiée.

    EHLO example.com
    AUTH LOGIN
    Base64EncodedSMTPUserName
    Base64EncodedSMTPPassword
    MAIL FROM: sender@example.com
    RCPT TO: recipient@example.com
    DATA
    From: Sender Name <sender@example.com>
    To: recipient@example.com
    Subject: Amazon SES SMTP Test
    
    This message was sent using the Amazon SES SMTP interface.
    .
    QUIT
  • Pour envoyer en utilisant le SSL explicite sur le port 587 - Entrez la commande suivante :

    openssl s_client -crlf -quiet -starttls smtp -connect smtp-server-endpoint:587 < input.txt
  • Pour envoyer en utilisant le SSL implicite sur le port 465 - Entrez la commande suivante :

    openssl s_client -crlf -quiet -connect smtp-server-endpoint:465 < input.txt

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X