IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outlook Discussion :

Format mail Réponse/Transfert [OL-2013]


Sujet :

Outlook

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Format mail Réponse/Transfert
    Bonjour,

    Je me tourne vers vous car je n'ai pas trouvé de solution à mon problème.

    Nous utilisons une signature dans Outlook 2013 avec deux images stockées sur un serveur distant. Lorsque l'on créer un nouveau mail, celui ci est bien au format HTML et la signature remonte bien.

    Seulement, lorsque l'on répond/transfert un message reçus en "texte brut", la réponse est automatiquement en texte brut, et donc la signature n'affiche pas les images (qui contiennent les coordonnées des utilisateurs).
    Les utilisateurs sont obligés d'aller dans l'onglet "Format du texte" et de cliquer sur HTML, puis de revenir dans l'onglet "Message" pour ajouter leur signature. La manipulation est assez fastidieuse ...

    N'est il pas possible de forcer la réponse/transfert en HTML à tous les coups ? J'ai bien vu la FAQ http://outlook.developpez.com/faq/?p...Format_Reponse mais je n'est pas le choix pour forcer le HTML.

    Merci d'avance.

  2. #2
    Membre du Club
    Homme Profil pro
    NC
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NC
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 51
    Points
    51
    Par défaut
    il faudra créer une macro en VBA voici le lien pour le programme et la mise en place:

    http://www.howto-outlook.com/howto/replyinhtml.htm

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Merci pour le lien,

    C'est pile poile ce qu'il me fallait !

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    J'ai encore un derniers soucis.

    Tout est en place et fonctionne, mais les images de la signature ne remonte pas à la bonne dimension. Elle sont toute petite et illisible, comment faire pour qu'elle soit à la bonne dimension ?



    Je souhaitait savoir si il est possible de déployer cette macro et l'ajout de bouton via une gpo ou je doit le faire à la main sur chaque poste client (nous utilisons principalement du TSE sur client légers pour nos utilisateurs) ?

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Ré - ouverture

    J'ai pu constater :

    - Dans un nouveau mail, la signature qui à été définis, contient du texte et deux images. Si je fait un clic droit "taille et position" sur celle ci, dans "échelle", un est à 208% et l'autre à 75%.
    - Dans un réponse/transfert avec les macros, le texte remonte comme il faut, mais les images elle sont plus petites. Si je fait un clic droit "taille et position" sur celle ci, dans "échelle", les deux sont à 100%.

    Je pense que le problème vient de l'échelle des images, quand pensez vous ?

    ---

    J'ai trouvé une autre macro sur la toile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Attribute VB_Name = "Transferer"
    Option Explicit
    Public Sub ReplyToPlainTextWithHTML()
       Dim HTMLReplyMail As Outlook.MailItem
     
       If Application.ActiveExplorer.Selection.Count Then
     
          If TypeOf Application.ActiveExplorer.Selection(1) Is Outlook.MailItem Then
     
             Set HTMLReplyMail = Application.CreateItem(olMailItem)
     
             HTMLReplyMail.To = Application.ActiveExplorer.Selection(1).SenderEmailAddress
             HTMLReplyMail.BodyFormat = olFormatHTML
             HTMLReplyMail.Subject = "TR: " & Application.ActiveExplorer.Selection(1).Subject
     
             Dim SigString As String
             SigString = "D:\utilisateurs\" & Environ("username") & _
                                         "\Application Data\Microsoft\Signatures\signature.htm"
             Dim mailSig As String
             If Dir(SigString) <> "" Then
                mailSig = GetBoiler(SigString)
             Else
                mailSig = ""
             End If
              HTMLReplyMail.HTMLBody = mailSig & "<br>" & _
                                     "-----Original Message-----" & "<br>" & _
                                     "From: " & Application.ActiveExplorer.Selection(1).SenderName & "<br>" & _
                                     "Sent: " & Application.ActiveExplorer.Selection(1).SentOn & "<br>" & _
                                     "To: " & Application.ActiveExplorer.Selection(1).To & "<br>" & _
                                     "cc: " & Application.ActiveExplorer.Selection(1).CC & "<br>" & _
                                     "Subject: " & Application.ActiveExplorer.Selection(1).Subject & "<br>" & _
                                      Application.ActiveExplorer.Selection(1).HTMLBody
     
            HTMLReplyMail.Display
     
          End If
     
       End If
    End Sub
    Function GetBoiler(ByVal sFile As String) As String
    'Dick Kusleika
        Dim fso As Object
        Dim ts As Object
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
        GetBoiler = ts.readall
        ts.Close
    End Function
    Avec cette macro, la signature remonte nickel (texte et images) mais les pièces jointes ne suivent pas. Pensez vous qu'il est faisable de faire un mix entre les deux ?

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    J'ai effectué des modif, en mixant les deux codes.

    C'est brouillons, et ne mis connaissant pas en vb, c'est surement du bricolage de fortune mais ça à le mérite de fonctionner.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    Sub ForceForwardInHTML()
     
    '=================================================================
    'Description: Outlook macro to forward a message in HTML
    '             regardless of the current message format.
    '             The forward will use your HTML signature as well.
    '
    'version: 1.1
    'website: http://www.howto-outlook.com/howto/replyinhtml.htm
    '=================================================================
     
        Dim objOL As Outlook.Application
        Dim objSelection As Outlook.Selection
        Dim objItem As Object
        Set objOL = Outlook.Application
     
        'Get the selected item
        Select Case TypeName(objOL.ActiveWindow)
            Case "Explorer"
                Set objSelection = objOL.ActiveExplorer.Selection
                If objSelection.Count > 0 Then
                    Set objItem = objSelection.Item(1)
                Else
                    Result = MsgBox("No item selected. " & _
                                "Please make a selection first.", _
                                vbCritical, "Forward in HTML")
                    Exit Sub
                End If
     
            Case "Inspector"
                Set objItem = objOL.ActiveInspector.CurrentItem
     
            Case Else
                Result = MsgBox("Unsupported Window type." & _
                            vbNewLine & "Please make a selection" & _
                            " or open an item first.", _
                            vbCritical, "Forward in HTML")
                Exit Sub
        End Select
     
        Dim olMsg As Outlook.MailItem
        Dim olMsgForward As Outlook.MailItem
        Dim IsPlainText As Boolean
        Dim SigString As String
        Dim Signature As String
        SigString = "D:\utilisateurs\" & Environ("username") & _
                                    "\Application Data\Microsoft\Signatures\signature.htm"
     
        'Change the message format and reply
        If objItem.Class = olMail Then
            Set olMsg = objItem
            If olMsg.BodyFormat = olFormatPlain Then
                IsPlainText = True
            End If
            olMsg.BodyFormat = olFormatHTML
            Set olMsgForward = olMsg.Forward
            If IsPlainText = True Then
                olMsg.BodyFormat = olFormatPlain
            End If
            olMsg.Close (olSave)
            olMsgForward.Display
     
            If Dir(SigString) <> "" Then
            Signature = GetBoiler(SigString)
            Else
                Signature = ""
            End If
     
        'Selected item isn't a mail item
        Else
            Result = MsgBox("No message item selected. " & _
                        "Please make a selection first.", _
                        vbCritical, "Forward in HTML")
            Exit Sub
        End If
     
        'Mise en forme du mail avec signature
        With olMsgForward
            .HTMLBody = "<font face=" & Chr(34) & "calibri" & Chr(34) & ">" & _
                        "<br>" & _
                        "<br>" & _
                        Signature & "<br>" & _
                        "-----Message d'origine-----" & "<br>" & _
                        "<b>De : </b>" & objSelection.Item(1).SenderName & "<br>" & _
                        "<b>Envoyé : </b>" & objSelection.Item(1).SentOn & "<br>" & _
                        "<b>À : </b>" & objSelection.Item(1).To & "<br>" & _
                        "<b>Cc: </b>" & objSelection.Item(1).CC & "<br>" & _
                        "<b>Objet : </b>" & objSelection.Item(1).Subject & "<br>" & _
                        "<br>" & _
                        objSelection.Item(1).HTMLBody
        End With
     
        'Cleanup
        Set objOL = Nothing
        Set objItem = Nothing
        Set objSelection = Nothing
        Set olMsg = Nothing
        Set olMsgForward = Nothing
     
    End Sub
     
    Function GetBoiler(ByVal sFile As String) As String
    'Dick Kusleika
        Dim fso As Object
        Dim ts As Object
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
        GetBoiler = ts.readall
        ts.Close
    End Function

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    Voici une autre façon de la faire de façon automatique :

    C'est un peu plus complexe à mettre en place. Il faut paramétrer les signatures par défaut


    Dans ThisOutlookSession:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Private m_MyEmails As VBA.Collection '' pour classe CMail
    Private m_lNextKeyEmails As Long '' pour classe CMail
     
     
    Private Sub Application_ItemLoad(ByVal item As Object)
    '---------------------------------------------------------------------------------------
    ' Procedure : Application_ItemLoad
    ' Author    : Oliv
    ' Date      : 07/03/2016
    ' Purpose   : EMAIL WRAPPER / Receive Events of Multiple Emails
    ' BASED ON : http://www.vboffice.net/en/developers/inspector-wrapper-receive-events-of-multiple-emails/
    '---------------------------------------------------------------------------------------
    '
     
        Dim oMail As cMail
        If m_MyEmails Is Nothing Then Set m_MyEmails = New VBA.Collection
        Set oMail = New cMail
        If item.Class = olMail Then
            If oMail.Init(item, CStr(m_lNextKeyEmails)) Then
                m_MyEmails.add oMail, CStr(m_lNextKeyEmails)
                m_lNextKeyEmails = m_lNextKeyEmails + 1
            End If
        ElseIf item.Class = olAppointment Then
            Set At = item
        End If
     
    End Sub
     
    Friend Property Get MyEmails() As VBA.Collection
    ' pour classe CMail
        Set MyEmails = m_MyEmails
    End Property


    Créer un "Module de Classe" et le Nommer cMail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    '---------------------------------------------------------------------------------------
    ' Module    : cMail
    ' Author    : Oliv
    ' Date      : 07/03/2016 17:49
    ' Purpose   : EMAIL WRAPPER / Receive Events of Multiple Emails
    '---------------------------------------------------------------------------------------
     
     
    Private WithEvents m_Mail As Outlook.MailItem
    Private m_IsClosed As Boolean
    Private m_sKey As String
     
    Friend Function Init(oEmail As Outlook.MailItem, sKey As String) As Boolean
        Dim obj As Object
     
        If Not oEmail Is Nothing Then
     
            Set m_Mail = oEmail
            m_sKey = sKey
            Init = True
        End If
     
    End Function
     
     
     
    Private Sub Class_Terminate()
        CloseEmail
    End Sub
     
    Friend Sub CloseEmail()
        On Error Resume Next
        If m_IsClosed = False Then
            m_IsClosed = True
            ThisOutlookSession.MyEmails.Remove m_sKey
            Set m_Mail = Nothing
        End If
    End Sub
     
     
     
    Private Sub m_Mail_Close(Cancel As Boolean)
        CloseEmail
    End Sub
     
     
    Private Sub m_Mail_Forward(ByVal Forward As Object, Cancel As Boolean)
        If Forward.Class = olMail Then
            Dim Origin As Outlook.MailItem
            MsgBox "fire m_Mail_Forward" & vbCr & Forward.BodyFormat
            If Forward.BodyFormat <> olFormatHTML Then
                m_Mail.BodyFormat = olFormatHTML
                DoEvents
                m_Mail.Forward
                'Cancel = True
            End If
        End If
    End Sub
     
    Private Sub m_Mail_Reply(ByVal Response As Object, Cancel As Boolean)
        If Response.Class = olMail Then
            Dim Origin As Outlook.MailItem
     
            If Response.BodyFormat <> olFormatHTML Then
                m_Mail.BodyFormat = olFormatHTML
                DoEvents
                m_Mail.Reply 
            End If
        End If
    End Sub
     
    Private Sub m_Mail_ReplyAll(ByVal Response As Object, Cancel As Boolean)
          If Response.Class = olMail Then
            Dim Origin As Outlook.MailItem
     
            If Response.BodyFormat <> olFormatHTML Then
                m_Mail.BodyFormat = olFormatHTML
                DoEvents
                m_Mail.ReplyAll
            End If
        End If
    End Sub

    Pour le deploiement bad news : http://www.developpez.net/forums/d13...n/#post7593197

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup Oliv' !

    Ce la fonctionne parfaitement, et de plus, on peut utiliser les boutons originaux sans en rajouter de nouveau pointant vers les macros.

    Vraiment pas mal du tout, très rapide à mettre en place. Le seul "désavantage" si je puis dire, c'est que cela modifie aussi le format du mail au quel au répond, mais dans notre cas, cela ne pose pas vraiment de problème en soit.

    Par contre je ne comprend pas pourquoi le message lorsque l'on transfert un mail : "fire m_Mail_Forward 1" (avec 1 = compteur de transfert) ?

  9. #9
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Il faut commenter cette ligne ( par ') ou la supprimer c’était juste pour les tests.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox "fire m_Mail_Forward" & vbCr & Forward.BodyFormat
    Si ton Mail d'origine est ouvert lorsque tu transfères, tu peux ne pas enregistrer les modifications.

  10. #10
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    Il faut commenter cette ligne ( par ') ou la supprimer c’était juste pour les tests.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox "fire m_Mail_Forward" & vbCr & Forward.BodyFormat
    Si ton Mail d'origine est ouvert lorsque tu transfères, tu peux ne pas enregistrer les modifications.
    Ok, je vais commenter la ligne. Merci encore !

    Une dernière question, y a t'il besoin de signer la nouvelle macro (module de classe) ?

  11. #11
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,
    si tu signes la macro tu n'auras pas besoin de cliquer sur activer les macros à l'ouverture de Outlook.

    Comment vas tu faire pour la diffuser à tes utilisateurs ?

  12. #12
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Ok pour la signature.

    Pour le déploiement, je ne sais pas encore comment je vais le faire.
    Soit je part sur le remplacement du "Vbaproject.otm" (pour une 30ene d'utilisateur) soit je me tente le coup du dll mais ça me parait un poil compliqué pour mon niveau, il faut que je relise le sujet à tête reposer car j'ai lu ça en diagonale.

    En tous cas, merci pour tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Newsletter (format sondage) + Réponse par mail en HTML
    Par charlix dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/05/2010, 19h35
  2. affichage lors de réponses/transferts de mails
    Par arfy dans le forum Thunderbird
    Réponses: 0
    Dernier message: 11/02/2007, 12h03
  3. [SQL] Format de réponse
    Par hpenhp dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/12/2006, 14h14
  4. Format mail du formulaire
    Par tintin174 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/04/2006, 16h11
  5. format mail en javascript?
    Par arti2004 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/01/2006, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo