Vous pouvez utiliser le Adresse électronique : pour construire un lien e-mail contenant un corps de message prédéfini, puis l'appeler à partir de la ligne de commande, ce qui devrait l'ouvrir dans votre client e-mail par défaut. Par exemple :
start mailto:?body=Your%20message%20here
Il suffit de personnaliser la pièce après body=
à la fin. J'ai lu que le texte doit être URL codée Mais au moins dans Windows Live Mail 2012, cela ne semble pas nécessaire. Je n'ai pas essayé avec des textes plus longs ou des symboles spéciaux, cependant, et je n'ai pas d'autres clients de messagerie (Outlook, Thunderbird, etc.) à tester.
Pour construire cette commande, vous pouvez écrire un simple fichier batch, comme celui qui suit :
@echo off
set /p text=
if "%text%" == "" goto error
start mailto:?body=%text%
goto end
:error
echo No argument provided!
:end
Cependant, comme le texte doit être codé en URL, il est préférable d'utiliser PowerShell. Pour coder une chaîne en URL, vous pouvez utiliser ceci :
[System.Reflection.Assembly]::LoadWithPartialName("System.Web") | out-null
[System.Web.HttpUtility]::UrlEncode("Your message here")
(La première ligne est nécessaire pour charger le System.Web
où le HttpUtility.UrlEncode
la fonction vit.)
En fait, si votre commande (ou tout ce que vous avez qui produit le texte que vous voulez rediriger) n'est pas trop complexe, vous pouvez simplement écrire la ligne suivante dans PowerShell (en remplaçant <your-command-here>
avec la commande que vous utilisez) :
start ("mailto:?body={0}" -f [System.Web.HttpUtility]::UrlEncode(<your-command-here>))
Remarque : ceci suppose que vous souhaitez simplement rediriger le texte vers votre client de messagerie par défaut. Si vous souhaitez réellement envoyer des e-mails à partir de la ligne de commande, consultez la réponse de @allquixotic.
2 votes
Petit détail : dans vos exemples, le clip n'est pas un dispositif, mais un programme nommé
clip.exe
0 votes
@wmz Tout compte ! Merci, je vais le corriger.