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
3 Réponses :
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: p> 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 corort> é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. P> p>
Merci pour votre réponse! Ce n'était pas exactement ce que je cherchais mais j'apprécie votre intérêt
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
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
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.