Est-il possible d'envoyer des pièces jointes depuis la ligne de commande?
Si possible, j'aimerais quelque chose d'aussi simple que:
mail -a myfile.txt -t [email protected] -s "Here's my file"
Est-il possible d'envoyer des pièces jointes depuis la ligne de commande?
Si possible, j'aimerais quelque chose d'aussi simple que:
mail -a myfile.txt -t [email protected] -s "Here's my file"
De tous les agents utilisateurs de messagerie du référentiel Ubuntu, il semble que mutt est la ligne de commande MUA dotée d'un support à long terme.
Selon le manuel , vous pouvez faire quelque chose comme:
mutt -a myfile.txt -s "Here's my file" -- [email protected]
sauf qu'il ne va nulle part, car il faut également un agent de transfert de courrier. Les plus populaires sont:
et les seuls que Canonical semble prendre en charge sont postfix (merci pour la correction Steve) et exim4 .
On pourrait aussi dire que xdg-email est également un MUA Ubuntu correct, mais il s'agit d'un avant-gardiste. end qui n'exécute que votre MUA préféré en votre nom.
Si vous souhaitez des conseils sur les MTA qui pourraient convenir à votre utilisation, ouvrez peut-être une autre question ici.
J'ai aussi eu des problèmes avec l'envoi de fichiers de pièces jointes. Lorsque j'ai envoyé un courrier électronique sans pièce jointe, cela a été un succès, mais pas avec la pièce jointe. Ce problème existait avec les commandes sendemail
, mutt
, mail
, mailx
, uuencode
.
Vous pouvez envoyer un e-mail avec:
mail -s "hello" [email protected] < /home/masoud/YOURFILE.txt
mais vous ne pouvez pas envoyer le même fichier que la pièce jointe ci-dessous:
mail -s "hello" [email protected] -a /home/masoud/YOURFILE.txt
ou:
mail -s "hello" -a /home/masoud/YOURFILE.txt [email protected]
Enfin, j'ai compris que seul ce format pouvait envoyer une pièce jointe:
echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt [email protected]
Curieusement, la différence réside dans l’existence de la commande "echo".
Il semble que l’option -a
ait été modifiée avec Uppercase -A
pour la pièce jointe maintenant. Le -a
semble être pour changer d'en-tête selon doc
J'ai trouvé que la commande et les paramètres avaient été modifiés récemment.
Si vous souhaitez envoyer vos pièces jointes avec cette commande:
mail -s "your subject" [email protected] -A /your/attachment/absolute/path < /home/you/message.txt
L'option attachment
doit être -A
, ce qui correspond à CAPITAL A
.
Vous pouvez envoyer un fichier à partir du shell , mais sinon utilisez Thunderbird .
Dans ce cas, essayez thunderbird -remote ...
est utile - en supposant que thunderbird fonctionne habituellement:
La commande ouvre une fenêtre de composition de courrier d’une instance thunderbird en cours d’exécution.
L'adresse "De" est votre adresse par défaut configurée dans thunderbird.
En outre, les paramètres de compte existants sont utilisés, aucune configuration distincte n’est nécessaire.
Pour un mail adressé à [email protected]
, avec le sujet "S", le corps "B" et une pièce jointe /some/absolute/file.txt
, la commande est
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='[email protected]',body='B',attachment='/some/absolute/file.txt')"
Il y a deux problèmes:
Le fichier joint doit être fourni par un chemin absolu , ce qui est fastidieux dans la pratique. Cela peut être géré en utilisant readlink -f
pour résoudre les chemins relatifs:
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='[email protected]',body='B',attachment='$(readlink -f file.txt)')"
En outre, la commande est longue. Utilisez un script shell ou une fonction shell, avec quatre arguments:
thunderbird-compose () {
thunderbird -remote "xfeDoCommand(composeMessage,subject='',to='',body='',attachment='$(readlink -f )')"
}
Avec cette fonction, la commande devient lisible:
thunderbird-compose 'Some Subject' [email protected] 'Body of message' file1
ouvrira une fenêtre "Write" avec la pièce jointe et le texte de From, To, Subject et du corps du Thunderbird.
heirloom-mailx
package dans debian fournit la commande mailx
pour envoyer facilement des pièces jointes de mime. travaux suivants pour moi;
mailx -a attachment.zip -s subject [email protected]
Je souhaite ajouter une autre réponse qui est utilisée pour ajouter du corps de texte avec la pièce jointe. Cheers !!
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- [email protected]
Lire d'autres questions sur les étiquettes command-line files email