[R] Modifier une police et sa couleur dans un mail

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

[R] Modifier une police et sa couleur dans un mail

#1

Message par lerin57 »

Bonjour à tous,
Tout d'abord, j'espère que la plupart ont passé un joyeux noel.

Voila un nouveau probleme.
Avec l'aide De Iste, j'ai put composer un script mettant en scene plusieurs Gui me conduisant à la conception d'un mail préformaté, généré par la commande _inetmail().
Ce type de mail sert, dans mon travail a envoyer des escalades vers des groupes de compétences.
Le client de messagerie est Outlook, et le mail généré est au format Html.
Je voudrait, dans le corps du message, selectionner certains paragraphes et mettre leur police en gras et en couleur (rouge par exemple).

Pour la partie selection, j'ai observé que autoit pouvait détecter et rechercher du texte dans l'emplacement d'une fenetre (fonction Wingettext() ou controlgettext()).

J'essaie actuellement de comprendre le principe de ces fonction.

J'aimerais savoir si il existe un moyen, une fois le texte trouvé, de lui attribuer l'attribut "gras" et la couleur rouge.

Je n'ai pas trouvé d'exemple probant dans l'aide, et il semble que le thème n'ai pas été abordé dans le forum (ou je n'ai pas cherché sur les bons mots clé).

J'ai eu l'idée d'une macro sous word, mais il semble que cette fonction ne puisse marcher que si la maro existe déja, ce qui ne convient pas à la demarche.

Si quelqu'un pouvait m'aider, je l'en remercie par avance.
Modifié en dernier par lerin57 le lun. 15 févr. 2010 16:53, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]modifier une police et sa couleur dans un mail

#2

Message par Tlem »

Puisque votre Email sera au format HTML, utilisez donc les balises HTML pour mettre en forme votre texte. ;)

Envoyez-vous un Email en ayant mit certaines partie du texte en gras, en rouge, en italique, etc ...
Puis après l'avoir réceptionné, regardez la source et constatez la simplicité d'emplois. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..]modifier une police et sa couleur dans un mail

#3

Message par lerin57 »

Hé bien, il y a un tout petit probleme.

Je n'y connait ABSOLUMENT rien en html.
Je ne sait même quelle fonction je pourrait utiliser pour genrerer le resultat.

Pourriez vous m'orienter, ou me fournir un exemple.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..]modifier une police et sa couleur dans un mail

#4

Message par timmalos »

Utilsez un editeur WYSIWYG (je conseille NVU, gratuit) :C'est un editeur de texte qui vous donnera le code html.
Vous n'avez qu'à taper votre texte, l'editer a votre convenance, puis copier coller le code html.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]modifier une police et sa couleur dans un mail

#5

Message par Tlem »

Il est clair que c'est le plus simple.
Sinon, vous pouvez lire ceci : http://www.allhtml.com/articles/detail/374
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..]modifier une police et sa couleur dans un mail

#6

Message par lerin57 »

Bonjour,

Merci pour vos réponses.

Concernant le fait d'afficher la source du mail, aucun probleme.

voici mon exemple de corp de message en html :

Code : Tout sélectionner

<p class=MsoNormal><b><font size=2 color=red face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:red;font-weight:bold'>Ceci est un nouveau test d&#8217;envoie.<o:p></o:p></span></font></b></p>
voici un exemple d'envoie de mail sous autoit :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Inet.au3>

Local $nDest, $nCc, $nObj, $nCorps ; Destinataire , Copie, Objet, Corps du message

$nDest = "toto@testmail.fr"
$nObj = "test d'envoie"
$nCorps = ???

_INetMail($nDest, $nObj, $nCorps)
 
Ma question serait plutôt : Comment puis je insérer le code dans la variable $nCorps ?
Dois ajouter une include particulière ?

En vous remerciant de votre retour
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#7

Message par lerin57 »

Un petit complement,

J'ai essayé de créer un corp avec l'include <ie.au3>.

Sous cette forme :
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Inet.au3>
#include <IE.au3>

Local $nDest, $nCc, $nObj, $nCorps ; Destinataire , Copie, Objet, Corps du message

$nDest = "toto@testmail.fr"
$nObj = "test d'envoie"
$ieobj = ("<" & "body lang=FR link=blue vlink=" & "#606420" & ">")
$iebd = "<p class=MsoNormal><b><font size=2 color=red face=Arial><span style='font-size:10.0pt;font-family:Arial;color:red;font-weight:bold'>Ceci est un nouveau test d&#8217;envoie.<o:p></o:p></span></font></b></p>"

$nCorps =_IEBodyWriteHTML($ieobj, $iebd)

_INetMail($nDest, $nObj, $nCorps)
Sans résultat.

Je Suppose qu'il y a forcément une erreur, ou du moins que je ne sais pas me servir correctement des fonctions appropriées.

Pour en revenir à ce probleme, quelqu'un pourrait-il m'orienter ?
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#8

Message par lerin57 »

Bonjour,

Je reviens vers vous pour ce problème.
Je bloque toujours, et je ne sais quelle fonction ou include utiliser pour ce script.

Si quelqu'un à la gentillesse de compléter ou corriger l'exemple fournie ci-dessus, je l'en remercie par avance. :wink:
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#9

Message par ayuckers »

Hello
Je profite de ce sujet car je voudrais faire la meme Chose
Ma messagerie est outlook 2003
je voudrais injecter un texte formater dans le corp du message
mais sans succes juqu'a maintenant.
j'ai aussi essayer de passer par les " Control " mais le resultat ne me convient pas

Vioci le resultat de mes recherche et experimention :
(ce petit bout de code fonctionne mais le texte n'est pas formater )
est il réellement possible d'afficher un bout de text Formater ?
j'ai essayer differante methode avec des fichier RTF et HTML
mais les contenu s'affiche de manierre non formater ou pas du tout.
► Afficher le texte
la plupart des lignes en commentaire sont different test.
si vous pensé qu'il faut crée un nouveau sujet dite le moi... :)
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [..]modifier une police et sa couleur dans un mail

#10

Message par DJSIR »

timmalos a écrit :Utilsez un editeur WYSIWYG (je conseille NVU, gratuit)
Un peu en retard mais.. Tim, le développement de Nvu est arrété et il à été remplacé par KompoZer
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#11

Message par Tlem »

J'ai jeté un oeil sur la fonction _InetMail() qui ce trouve dans l'include Inet.au3.
Le problème de cette fonction, c'est qu'elle utilise la fonction _INetExplorerCapable() qui limite les caractères à certains code ASCII seulement :
If $n_IEChar < 0x21 Or $n_IEChar = 0x25 Or $n_IEChar = 0x2f Or $n_IEChar > 0x7f Then
Donc le formatage du texte n'est vraisemblablement pas possible.
Idem pour les caractères accentués Français ...
Si vous voulez utiliser cette fonction, je vous conseil de la ré-écrire ou du moins d'utiliser la ligne de commande qui va bien. ;)

Voici la fonction _InetMail()
► Afficher le texte
Donc si je décompose, je vois que la ligne

Code : Tout sélectionner

Local $var = RegRead('HKCR\mailto\shell\open\command', "")
récupère le logiciel de mail par défaut.
Puis celle qui suit lance ce logiciel avec pour arguments les informations pour le mail. ;)
Donc il suffirait de savoir comment envoyer les informations en ligne de commande pour prendre en compte le formatage du texte et le tour serait joué.

Cela dit, je ne suis pas sure que cela soit simple. Donc peut être que l'utilisation d'un UDF qui prend en charge le HTML serait pas mal. ;)
http://www.autoitscript.com/forum/index ... t&p=166575
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#12

Message par Tlem »

Je n'ai pas trouvé grand chose sur l'ajout du formatage et la liaison en ligne de commande.

Mais il semble qu'il y ai une solution bien plus 'pratique' dans les possibilités.
Ce serait de créer un fichier .eml (qui est principalement composé de code HTML).
Ensuite l'envoi de ce fichier en argument au logiciel de mail, et le tour est joué. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#13

Message par ayuckers »

A force de perseverer j'ai fini par trouver une solution qui me convient a 80%
avec un texte formater en HTML
l'ideal pour moi serai de faire la meme chose en RTF

Attention cette exemple ne fonctionne que pour outlook !

l'approche est legerement differente (merci le forum anglais :D )
► Afficher le texte
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#14

Message par Tlem »

La solution du fichier .eml me semble bien plus simple et surtout plus universelle. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#15

Message par lerin57 »

Bonsoir,

Merci pour toutes ces réponses,

Le vais étudier la solution de Tlem,

LA fonction inetmail() ressemblant un peu à la commande mailto:(si je ne m'abbuse), je suppose qu'elle devait avoir certaines limites.

Je remercie également ayuckers, son idée est également interressante.

Je reviens vers vous tres vite après les tests.

Bonne soirée à tous.
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#16

Message par lerin57 »

Bonjour, A tous

J'ai commencer à éplucher Google pour la création d'un fichier *.eml.
Hors il est indiqué, sur les premiers forum que j'ai visité, qu'un fichier *.eml ne peut être lu que par Outlook express ( ???).

Une petite précision, nous travaillons exclusivement sous Outlook 2003

Les version office jusqu'à 2003 ne supporterait pas ce format (quid de office 2007 ?)

J'ai tout de même essayé un export de mails avec différentes méthode, tels que enregistrer un message outlook (Dans un premier temps, le format eml n'est effectivement pas proposé).
J'ai essayé également d'afficher la source et de l'enregistrer au format eml, sans succés.

Sinon, j'ai abordé également la solution de ayuckers, mais comme je l'ai souligné un peu plus haut, je manque beaucoup de pratique au niveau des interpreteurs html.

Quoiqu'il en soit, j'aimerais persévérer sur ces deux possibilité, donc si vous avez des précisions à m'apporter, je vous en remercie par avance.
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#17

Message par ayuckers »

Hello, lerin57

Moi non plus je ne comprend pas tout ce que je fait, je test encore et encore des bout de code dans tout les sans :lol:

Ma fonction sur mesure pour realiser l'automatisation de mes mail en fonction de model prédefini est presque terminer, je la posterait ici dans le week end.

Sinon pour ce qui est du HTML moi aussi mes connaissance son limité
tu peut t'aider du logiciel Kompozer qui est le remplacant de Nvu....
http://kompozer.net/
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#18

Message par ayuckers »

Edit : mise a jour....

voici donc ma fonction final :
Pour obtenir un texte formaté je réalise un model HTML.
pour faire ces model j'utilise le logiciel Kompozer car je n'y connais rien en HTML
cette exemple fonctionne avec OutLook 2003 (pas tester avec le 2007)

Code : Tout sélectionner

Func _CreateMail($From, $To, $Subject, $Model, $sAttachments = "", $AutoSend = 0, $ModelDirectory = "C:\"
$From : Correspond a l'éméteur du mail, ex : "nom@societe.com"
$To : correspond au destinataire, ex : "titi@gmail.com"
$Subject : correspond au sujet du mail, ex : "coucou c'est moi"
$Model : fichier HTML contenant le model a envoyer, ex : "toto.html"
$sAttachments : Si il y a des fichiers a attacher, ex :"c:\foto\photo1.jpg;c:\document\test.doc"
$AutoSend : si 0 ne fait rien, si 1 envoi le mail automatiquement
$ModelDirectory : répertoire contenant les model, ex : "C:\ModeOutLook\"

Exemple simplifier a l'extreme (mon point de depart):
► Afficher le texte
Voici le Code pour envoyer un model HTML :
► Afficher le texte
Exemple de resultat :
► Afficher le texte
Modifié en dernier par ayuckers le mer. 13 janv. 2010 00:14, modifié 4 fois.
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#19

Message par lerin57 »

Bonjour, Ayuckers.

Je suis désolé de t'embeter, mais je vais devoir te demander quelques précisions.

J'ai suivi ton conseil, et j'ai récupéré la dernière version de kompozer, afin de creer un fichier toto.html dans un emplacement courant.
Je lui ai mis la phrase "ceci est un test" en gras, couleur rouge, police arial.
Jusqu'ici, cela n'est qu'un simple détail.

Je m'attaque maintenant à ton script
les chiffres indiqués sur les variables suivantes doivent à mon avis influer sur le mail complet, pourrait tu, s'il te plait, les détailler :

Code : Tout sélectionner

    Local $olMailItem    = 0
    Local $olFormatRichText = 3
    Local $olImportanceLow   = 0
    Local $olImportanceNormal= 1
    Local $olImportanceHigh  = 2
    Local $olFormatHTML = 1
Peut tu m'indiquer egalement a quoi correspond la variable suivante :

Code : Tout sélectionner

$WinSubject = $Subject
J'ai compris pourquoi tu utilisait la fonction objcreate, mais que signifie la ligne

Code : Tout sélectionner

$oOMail = $oOApp.CreateItem($olMailItem)
pour la suite du code :

Code : Tout sélectionner

.SentOnBehalfOfName = ($From) ; Envoyé en tant que...
        .To = ($To) ; destinataire
        .Subject = $Subjectn ; Sujet du mail
        .BodyFormat =  $olFormatHTML ; format HTML
        ;.BodyFormat =  $olFormatRichText
        .Importance = $olImportanceHigh
        ;.Body = "email message"
        .HTMLBody = $MonModel ; model en HTML
        If $sAttachments <> "" Then
            $asAttachments = StringSplit($sAttachments,";")
            For $iNumOfAttachments = 1 to $asAttachments[0]
                .Attachments.Add($asAttachments[$iNumOfAttachments])
J'ai essayé d'attribuer des valeurs à $Subjectn et $To, mais rien ne se passe.

Je suis désolé de t'embeter, mais ton script est vraiment interressant, et si tu pouvais le décortiquer un peu plus, je pense que j'arriverais à trouver mon bonheur.

En te remerciant par avance.
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Modifier une police et sa couleur dans un mail

#20

Message par ayuckers »

Voila j'ai corriger et modifie mon poste juste au dessus
j'ai modifier l'exemple car effectivement il y avait des erreur.. Maintenant sa dervrait fonctionner correctement.

En ce qui concerne :

Code : Tout sélectionner

  Local $olMailItem = 0
    ;Local $olFormatRichText = 3
    ;Local $olImportanceLow = 0
    ;Local $olImportanceNormal = 1
    ;Local $olImportanceHigh = 2
    Local $olFormatHTML = 1
Ce sont d'apres ce que j'ai compris des constante de model Objet "OutLook"
http://support.microsoft.com/kb/285202/fr
http://support.microsoft.com/kb/222101/fr

En fait je découvre moi aussi et je n'ai pas encore saisie toute les subtiliter de ce que j'utilise.

Dit moi si maintenant sa fonctionne :)
Répondre