0
votes

Répondre avec .oft Modèle et afficher des images et des pièces jointes

Lorsque je crée un courrier électronique à partir d'un gabarit .oft, il ne montre pas tout le contenu de l'e-mail.
Il manque de contenu comme des images et / ou des pièces jointes.

J'ai essayé de fusionner Sub Répondre1 () et Sub Réponse2 (): P>

Sub Reply2()

Dim origEmail As MailItem
Dim replyEmail As MailItem

Set origEmail = ActiveExplorer.Selection(1)
Set replyEmail = CreateItemFromTemplate("C:\Outlook\Mail.oft")

replyEmail.To = origEmail.Reply.To

replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.Reply.HTMLBody
replyEmail.Recipients.ResolveAll
replyEmail.Display

Set origEmail = Nothing
Set replyEmail = Nothing

End Sub


0 commentaires

3 Réponses :


0
votes

Les images incorporées sont stockées comme des pièces jointes cachées sur le message électronique. Si vous créez un nouvel élément Outlook basé sur le modèle, vous devez réoordonner les images requises pour obtenir le corps du message rendu correctement. Vous pouvez en savoir plus sur cela dans le Comment ajouter une image intégrée à un message HTML dans Outlook 2010 thread.

En outre, j'ai remarqué le code suivant: xxx

N'oubliez pas, La chaîne HTML devrait être un balisage bien formé. Si vous souhaitez insérer quelque chose dans le corps du message d'un élément existant, vous devez coller qui à l'intérieur de l'ouverture et fermeture éléments. Sinon, vous risquez de vous retrouver avec un corps de message cassé ou incorrectement rendu. Même si Outlook fait son excellent travail en triant la plupart des erreurs.


1 commentaires

Merci pour votre réponse! Ce n'était pas exactement ce que je cherchais mais j'apprécie votre intérêt



0
votes

Le code ci-dessous fonctionne dans ma situation.

Sub Reply1()
Dim fromTemplate As MailItem
Dim reply As MailItem
Dim oItem As Object

Set fromTemplate = CreateItemFromTemplate("C:\Outlook\Mail.oft")

Set oItem = GetCurrentItem()
If Not oItem Is Nothing Then
Set reply = oItem.ReplyAll
CopyAttachments oItem, fromTemplate, reply
    
reply.HTMLBody = fromTemplate.HTMLBody & reply.HTMLBody
    
reply.Display
oItem.UnRead = False
End If
 
Set reply = Nothing
Set oItem = Nothing
End Sub


Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
     
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
 
Set objApp = Nothing
End Function

Sub CopyAttachments(source1, source2, objTargetItem)
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder
strPath = fldTemp.Path & "\"
For Each objAtt In source1.Attachments
strFile = strPath & objAtt.fileName
objAtt.SaveAsFile strFile
objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
fso.DeleteFile strFile
Next

For Each objAtt In source2.Attachments
strFile = strPath & objAtt.fileName
objAtt.SaveAsFile strFile
objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
fso.DeleteFile strFile
Next

Set fldTemp = Nothing
Set fso = Nothing
End Sub


0 commentaires

0
votes

Transfert d'un courrier électronique conserve des pièces jointes.

Option Explicit ' Consider this mandatory
' Tools | Options | Editor tab
' Require Variable Declaration
' If desperate declare as Variant


Sub Reply_Retain_Attachments()

    Dim fromTemplate As MailItem
    Dim origEmail As MailItem
    Dim forwardEmail As MailItem
    
    Set fromTemplate = CreateItemFromTemplate("C:\Outlook\Mail.oft")
    
    Set origEmail = GetCurrentItem()
    
    If Not origEmail Is Nothing Then
    
        ' Forward retains attachments
        Set forwardEmail = origEmail.Forward
        
        forwardEmail.HTMLBody = fromTemplate.HTMLBody & forwardEmail.HTMLBody
        
        forwardEmail.To = origEmail.reply.To ' keep .reply here
        
        forwardEmail.Recipients.ResolveAll
        forwardEmail.Display
        
    Else
        ' This may never occur
        MsgBox "GetCurrentItem is nothing?"
        
    End If

End Sub

Function GetCurrentItem() As Object
     
    'On Error Resume Next ' uncomment if you find it necessary
    
    Select Case TypeName(ActiveWindow)
    Case "Explorer"
        Set GetCurrentItem = ActiveExplorer.Selection.item(1)
    Case "Inspector"
        Set GetCurrentItem = ActiveInspector.CurrentItem
    End Select

End Function


1 commentaires

Merci Niton Votre code est beaucoup plus propre que ma tentative. Il n'ajoutera pas toutes les images comme pièce jointe parfaite! Mais il manque une chose lorsque j'ai testé votre code. Si "Mail.oft" contient une pièce jointes comme par exemple un fichier README.PDF affiché dans l'image "Sub Répondre2 ()" "Il ne sera pas dans la réponse de la réponse. Ce n'est que le cas pour le fichier .oft non pour l'e-mail que vous avez répondu. Ces pièces jointes seront ajoutées à votre courrier électronique.