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.