{"id":74,"date":"2007-05-17T04:34:18","date_gmt":"2007-05-17T04:34:18","guid":{"rendered":"http:\/\/www.dereckson.be\/blog\/2007\/05\/17\/envoyer-un-mail-depuis-surfboard\/"},"modified":"2007-05-17T04:34:18","modified_gmt":"2007-05-17T04:34:18","slug":"envoyer-un-mail-depuis-surfboard","status":"publish","type":"post","link":"https:\/\/www.dereckson.be\/blog\/2007\/05\/17\/envoyer-un-mail-depuis-surfboard\/","title":{"rendered":"Envoyer un mail depuis SurfBoard + code source"},"content":{"rendered":"<p>Nouvelle fonction dans SurfBoard, .mail &lt;destinataire&gt; [objet]<\/p>\n<p><img decoding=\"async\" src=\"\/Blog\/images\/SurfBoard\/ScreenshotMail.png\" alt=\"\" \/><\/p>\n<p>Voici son mode d&#8217;emploi ainsi que le code source, sous license BSD.<\/p>\n<p><!--more--><\/p>\n<h3>Mode d&#8217;emploi<\/h3>\n<p> <img decoding=\"async\" src=\"\/Blog\/images\/Icons\/mail_box_write_128.png\" align=right alt=\"\" \/> <\/p>\n<p><em>Pour envoyer un e-mail \u00e0 un membre :<\/em><\/p>\n<p>.mail dereckson<\/p>\n<p><em>Pour envoyer un e-mail \u00e0 une adresse :<\/em><\/p>\n<p>.mail admins-irc@espace-win.org<\/p>\n<p><em>Vous pouvez \u00e9galement pr\u00e9ciser l&#8217;objet directement dans la commande .mail :<\/em><\/p>\n<p>.mail techs@espace-win.org Merci pour ce script<\/p>\n<p><em>Si pas ce sera la premi\u00e8re ligne que vous demandera le script.<\/em><\/p>\n<h3>Code source<\/h3>\n<p>Si vous souhaitez impl\u00e9manter ce script dans un autre interpr\u00e9tateur TCL qu&#8217;un eggdrop, pensez que control ouvre un mode sp\u00e9cial o\u00f9 toutes les entr\u00e9es utilisateur sont renvoy\u00e9es \u00e0 la proc enregistrer_mail.<\/p>\n<p>Pensez \u00e9galement \u00e0 supprimer getuserinfo $idx email ou \u00e0 le remplacer par le mail de l&#8217;exp\u00e9diteur.<\/p>\n<pre class=\"tcl\">bind dcc - mail dcc:mail <span style=\"color: #ff7700;font-weight:bold;\">proc<\/span> dcc:mail <span style=\"color: black;\">{<\/span>handle idx arg<span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">global<\/span> mail special         <span style=\"color: #ff7700;font-weight:bold;\">if<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$arg<\/span> == <span style=\"color: #483d8b;\">\"\"<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>             putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"## Syntaxe : .mail <destinataire>\"<\/span>             <span style=\"color: #ff7700;font-weight:bold;\">return<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">elseif<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: black;\">[<\/span>validuser <span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">lindex<\/span> <span style=\"color: #ff3333;\">$arg<\/span> <span style=\"color: #ff4500;\">0<\/span><span style=\"color: black;\">]<\/span><span style=\"color: black;\">]<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>             <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-to<span style=\"color: black;\">)<\/span> <span style=\"color: black;\">[<\/span>getuserinfo <span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">lindex<\/span> <span style=\"color: #ff3333;\">$arg<\/span> <span style=\"color: #ff4500;\">0<\/span><span style=\"color: black;\">]<\/span> email<span style=\"color: black;\">]<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">elseif<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">regexp<\/span> <span style=\"color: black;\">{<\/span>^<span style=\"color: black;\">[<\/span>A-Za-z0<span style=\"color: #ff4500;\">-9<\/span>._-<span style=\"color: black;\">]<\/span>+@<span style=\"color: black;\">[<\/span><span style=\"color: black;\">[<\/span>A-Za-z0<span style=\"color: #ff4500;\">-9<\/span>.-<span style=\"color: black;\">]<\/span>+$<span style=\"color: black;\">}<\/span> <span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">lindex<\/span> <span style=\"color: #ff3333;\">$arg<\/span> <span style=\"color: #ff4500;\">0<\/span><span style=\"color: black;\">]<\/span><span style=\"color: black;\">]<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>             <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-to<span style=\"color: black;\">)<\/span> <span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">lindex<\/span> <span style=\"color: #ff3333;\">$arg<\/span> <span style=\"color: #ff4500;\">0<\/span><span style=\"color: black;\">]<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">else<\/span> <span style=\"color: black;\">{<\/span>             putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"Destinataire invalide : [lindex $arg 0]\"<\/span>             <span style=\"color: #ff7700;font-weight:bold;\">return<\/span>         <span style=\"color: black;\">}<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span> <span style=\"color: #483d8b;\">\"\"<\/span>         putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02Alors, que d\u00e9sires tu envoyer comme mail ?<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02\"<\/span>         putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"Pour envoyer l'e-mail, entre une ligne ne contenant que ceci: <span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02+<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02\"<\/span>         putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"Pour annuler l'e-mail, entre une ligne ne contenant que ceci: <span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02-<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02\"<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-subject<span style=\"color: black;\">)<\/span> <span style=\"color: black;\">[<\/span>truncate_first_word <span style=\"color: #ff3333;\">$arg<\/span><span style=\"color: black;\">]<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">if<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$mail<\/span><span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-subject<span style=\"color: black;\">)<\/span> == <span style=\"color: #483d8b;\">\"\"<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>             putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02Objet :<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02\"<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">else<\/span> <span style=\"color: black;\">{<\/span>             putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02Message :<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02\"<\/span>         <span style=\"color: black;\">}<\/span>         control <span style=\"color: #ff3333;\">$idx<\/span> enregistrer_mail         dccbroadcast <span style=\"color: #483d8b;\">\"Tiens, $handle est parti r\u00e9diger un mail ...\"<\/span> <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">proc<\/span> enregistrer_mail <span style=\"color: black;\">{<\/span>idx texte<span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">global<\/span> mail special         <span style=\"color: #ff7700;font-weight:bold;\">if<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$texte<\/span> == <span style=\"color: #483d8b;\">\"+\"<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>                 mail.send <span style=\"color: #ff3333;\">$mail<\/span><span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-to<span style=\"color: black;\">)<\/span> <span style=\"color: #ff3333;\">$mail<\/span><span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-subject<span style=\"color: black;\">)<\/span> <span style=\"color: #ff3333;\">$mail<\/span><span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span> <span style=\"color: black;\">[<\/span>getuserinfo <span style=\"color: #ff3333;\">$idx<\/span> email<span style=\"color: black;\">]<\/span>                 unset mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span>                 putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"Envoy\u00e9 :-)\"<\/span>                 dccbroadcast <span style=\"color: #483d8b;\">\"Et, hop, un mail d'envoy\u00e9 pour [idx2hand $idx] :)\"<\/span>                 <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> special<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span> noinfoline                 <span style=\"color: #ff7700;font-weight:bold;\">return<\/span> <span style=\"color: #ff4500;\">1<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">elseif<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$texte<\/span> == <span style=\"color: #483d8b;\">\"-\"<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>                 unset potin<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span>                 dccbroadcast <span style=\"color: #483d8b;\">\"[idx2hand $idx] vient de changer d'avis et revient.\"<\/span>                 putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"Ok, le mail a \u00e9t\u00e9 annul\u00e9: retour au party line !\"<\/span>                 <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> special<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span> noinfoline                 <span style=\"color: #ff7700;font-weight:bold;\">return<\/span> <span style=\"color: #ff4500;\">1<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">elseif<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$mail<\/span><span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-subject<span style=\"color: black;\">)<\/span> == <span style=\"color: #483d8b;\">\"\"<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>                 <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span>-subject<span style=\"color: black;\">)<\/span> <span style=\"color: #ff3333;\">$texte<\/span>                 putdcc <span style=\"color: #ff3333;\">$idx<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02Message :<span style=\"color: #000099; font-weight: bold;\">\u0000<\/span>02\"<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">else<\/span> <span style=\"color: black;\">{<\/span>                 <span style=\"color: #008000;\">regsub<\/span> -all <span style=\"color: black;\">{<\/span>\\<span style=\"color: black;\">}<\/span> <span style=\"color: #ff3333;\">$texte<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">\\<\/span><span style=\"color: #000099; font-weight: bold;\">\\<\/span><span style=\"color: #000099; font-weight: bold;\">\\<\/span>\"<\/span> texte                 <span style=\"color: #008000;\">regsub<\/span> -all <span style=\"color: #483d8b;\">\"'\"<\/span> <span style=\"color: #ff3333;\">$texte<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">\\<\/span>'\"<\/span> texte                 <span style=\"color: #008000;\">append<\/span> mail<span style=\"color: black;\">(<\/span><span style=\"color: #ff3333;\">$idx<\/span><span style=\"color: black;\">)<\/span> <span style=\"color: #483d8b;\">\"<span style=\"color: #000099; font-weight: bold;\">n<\/span>$texte\"<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: black;\">}<\/span> <span style=\"color: #808080; font-style: italic;\">##########################################################################<\/span> <span style=\"color: #808080; font-style: italic;\"># Proc utilis\u00e9es par ce script                                           #<\/span> <span style=\"color: #808080; font-style: italic;\">##########################################################################<\/span> <span style=\"color: #ff7700;font-weight:bold;\">proc<\/span> mail.send <span style=\"color: black;\">{<\/span>to objet message <span style=\"color: black;\">{<\/span>from <span style=\"color: black;\">{<\/span><span style=\"color: black;\">}<\/span><span style=\"color: black;\">}<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">if<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$from<\/span> != <span style=\"color: #483d8b;\">\"\"<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>                 <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> headers <span style=\"color: #483d8b;\">\"-a <span style=\"color: #000099; font-weight: bold;\">\"<\/span>From: $from<span style=\"color: #000099; font-weight: bold;\">\"<\/span>\"<\/span>         <span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">else<\/span> <span style=\"color: black;\">{<\/span>                 <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> headers <span style=\"color: #483d8b;\">\"\"<\/span>         <span style=\"color: black;\">}<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> fd <span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">open<\/span> <span style=\"color: #483d8b;\">\"|mail $headers -s <span style=\"color: #000099; font-weight: bold;\">\"<\/span>$objet<span style=\"color: #000099; font-weight: bold;\">\"<\/span> $to\"<\/span> <span style=\"color: #483d8b;\">\"w\"<\/span><span style=\"color: black;\">]<\/span>         <span style=\"color: #008000;\">puts<\/span> <span style=\"color: #ff3333;\">$fd<\/span> <span style=\"color: #483d8b;\">\"$message\"<\/span>         <span style=\"color: #008000;\">flush<\/span> <span style=\"color: #ff3333;\">$fd<\/span>         <span style=\"color: #008000;\">close<\/span> <span style=\"color: #ff3333;\">$fd<\/span> <span style=\"color: black;\">}<\/span> <span style=\"color: #808080; font-style: italic;\">##########################################################################<\/span> <span style=\"color: #808080; font-style: italic;\"># Renvoie &lt;chaine> sans le premier mot                                   #<\/span> <span style=\"color: #808080; font-style: italic;\"># Substitut \u00e0 lrange $chaine 1 end                                       #<\/span> <span style=\"color: #808080; font-style: italic;\">##########################################################################<\/span> <span style=\"color: #ff7700;font-weight:bold;\">proc<\/span> truncate_first_word <span style=\"color: black;\">{<\/span>chaine<span style=\"color: black;\">}<\/span> <span style=\"color: black;\">{<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">set<\/span> pos <span style=\"color: black;\">[<\/span><span style=\"color: #ff7700;font-weight:bold;\">expr<\/span> <span style=\"color: black;\">[<\/span><span style=\"color: #008000;\">string<\/span> first <span style=\"color: #483d8b;\">\" \"<\/span> <span style=\"color: #ff3333;\">$chaine<\/span><span style=\"color: black;\">]<\/span> + <span style=\"color: #ff4500;\">1<\/span><span style=\"color: black;\">]<\/span>         <span style=\"color: #ff7700;font-weight:bold;\">if<\/span> <span style=\"color: black;\">{<\/span><span style=\"color: #ff3333;\">$pos<\/span> == <span style=\"color: #ff4500;\">0<\/span><span style=\"color: black;\">}<\/span> <span style=\"color: #ff7700;font-weight:bold;\">return<\/span>         <span style=\"color: #008000;\">string<\/span> range <span style=\"color: #ff3333;\">$chaine<\/span> <span style=\"color: #ff3333;\">$pos<\/span> end <span style=\"color: black;\">}<\/span>  <\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nouvelle fonction dans SurfBoard, .mail &lt;destinataire&gt; [objet]<\/p>\n<p><img decoding=\"async\" src=\"\/Blog\/images\/SurfBoard\/ScreenshotMail.png\" alt=\"\" \/><\/p>\n<p>Voici son mode d&#8217;emploi ainsi que le code source, sous license BSD.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-74","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":0,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}