Comment envoyer un e-mail avec pièce jointe par suffixe à partir de la ligne de commande?

10

Je viens de configurer un nouveau serveur Ubuntu 10.04 LTS sur linode pour moi. Suivi d'une excellente instruction à: ici pour terminer l'installation de quelques trucs de base, y compris postfix.

J'essaie de trouver un moyen d'envoyer un e-mail à mon adresse Gmail avec une pièce jointe, mais je ne trouve pas comment. Déjà confirmé que le courrier électronique peut atteindre mon compte gmail.

En fin de compte, je dois utiliser mutt pour envoyer l'e-mail avec des pièces jointes, SendEmails fera probablement bien aussi, mais je me demande comment faire la même chose dans postfix depuis la ligne de commande?

Merci d'avance pour cette stupide question.

Michael Mao
la source

Réponses:

14

Pourquoi faut-il que ce soit postfixdirectement? mailx -a,, muttou mutt -autilisera également l' sendmailinterface - sauf si vous les configurez pour SMTP.

echo "Ceci est un message de test" | mutt -s Test -a foo.zip - $ USER
echo "Ceci est un message de test" | mail -s Test -a foo.zip $ USER

(Remarque, dans bsd-mailx, l'option est à la -Aplace.)


Quoi qu'il en soit, voici un exemple "postfix".

Remplacez $USER, le type de contenu et le nom de fichier pour correspondre à votre environnement. L'exemple suppose que vous vous envoyez le message et que vous avez un fichier ZIP foo.zipdans le répertoire actuel.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Création de messages multiparties MIME laissés en exercice au lecteur.)

user1686
la source
mail -a foo.zipne se joint pas foo.zipà un message comme avec mutt.
nr
@ nicolai.rostov: cela dépend mail, je suppose. Il le fait dans heirloom-mailx.
user1686
7

Postfix est un agent de transfert de courrier (MTA) . Son travail consiste à gérer la livraison du courrier: le ramasser et l'envoyer au prochain point de son itinéraire. Postfix est un postier dont le travail consiste à prendre une enveloppe et (avec l'aide de ses collègues) à la porter au destinataire.

Ce que vous demandez ici, c'est un travail de secrétariat: assembler des documents pour les mettre dans l'enveloppe. Ce n'est pas le travail de Postfix: c'est un travail pour un agent utilisateur de messagerie (MUA) . Vous pouvez écrire un MUA brut qui assemble simplement des pièces pour faire un courrier en quelques lignes de shell, comme l'a fait grawity , mais Mutt est vraiment un bon outil pour cette tâche.

Gilles 'SO- arrête d'être méchant'
la source
4

Depuis la ligne de commande, j'aime utiliser "sendemail", qui sur ubuntu / debian peut être installé à partir de la ligne de commande comme ceci:

apt-get install sendemail

Ensuite, vous pouvez simplement lui dire d'utiliser localhost (Postfix) comme MTA.

En fait, je viens de remarquer que localhost: 25 est la valeur par défaut:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Vous ajoutez ensuite des pièces jointes à l'aide de l'indicateur -a:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip
Docunext
la source
1

mailx 12.4 a une option pour joindre des fichiers:

-a fichier
    Joignez le fichier donné au message.

Par exemple:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
c'est le logiciel pin que vous avez demandé Enter
.Enter
EOT
[gawad @ centos Desktop] $ 
user228560
la source