Отправка писем с черновика с помощью VBA - PullRequest
0 голосов
/ 01 июня 2019

Описание проблемы:

Существует несколько писем, создаваемых в черновой папке outlook с помощью макроса, и после выполнения макроса пользователи проверяют электронную почту вручную и, наконец, отправляют все черновики электронных писем, нажав кнопку в outlook, которая, в свою очередь, вызывает ниже макросы, которые отправляют все черновики электронной почты по одному один.

Sub SendAllDraftEmails()

    Dim draftItem As Long
    Dim outlookApp As Outlook.Application
    Dim outlookNameSpace As Outlook.NameSpace
    Dim draftsFolder As Outlook.MAPIFolder

    Set outlookApp = Outlook.Application
    Set outlookNameSpace = myOutlook.GetNamespace("MAPI")
    Set draftsFolder = outlookNameSpace.GetDefaultFolder(olFolderDrafts)

    For draftItem = draftsFolder.Items.Count To 1 Step -1
           If Len(Trim(draftsFolder.Items.Item(draftItem).To)) > 0 Then
            myDraftsFolder.Items.Item(draftItem).Send
        End If
    Next draftItem

    Set draftsFolder = Nothing
    Set outlookNameSpace = Nothing
    Set outlookApp = Nothing

End Sub

Теперь проблема заключается в том, что когда я создаю электронные письма с помощью первого макроса, я получаю все согласно ожиданиям, а также прикрепляю соответствующую подпись пользователя в конце каждого письма, ссылаясь на путь подписей по умолчанию и получая доступ к соответствующим файлам signature.html пользователя. Также ссылка на изображение прилагается к подписи.

Согласно моему пониманию, нам нужно изменить относительный путь изображения в сигнатуре на абсолютный путь. (В соответствии с предложением Mozzis - Как добавить подпись по умолчанию в Outlook )

Теперь, после использования вышеупомянутого макроса для отправки всех черновиков электронных писем, получатели не получают изображение с подписью вместо изображения, он мог видеть границу изображения, но изображение отсутствует enter image description here

Но когда я пытаюсь отправить черновик электронной почты, нажав кнопку «Отправить», элемент почты вручную получатели получают все содержимое электронной почты правильно с изображением подписи.

Просто дайте мне знать, требуются ли какие-либо изменения в макросе выше для отправки электронной подписи с изображением Также дайте мне знать, нужно ли что-то менять, кроме этого. Также хотелось бы понять, как Outlook фактически добавляет / выгружает изображение подписи (сообщение встроенного изображения) при отправке электронной почты вручную. В основном нужно понять компромисс между отправкой электронной почты с помощью кнопки outlook и отправкой электронной почты с помощью макроса SendAllDraftEmails ().

HTML часть тела подписи ниже

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 15">
<meta name=Originator content="Microsoft Word 15">
<link rel=File-List href="C:\Users\Vinod\AppData\Roaming\Microsoft\Signatures\My_Sign_files\filelist.xml">
<link rel=Edit-Time-Data href="C:\Users\Vinod\AppData\Roaming\Microsoft\Signatures\My_Sign_files\editdata.mso">
<link rel=themeData href="C:\Users\Vinod\AppData\Roaming\Microsoft\Signatures\My_Sign_files\themedata.thmx">
<link rel=colorSchemeMapping href="C:\Users\Vinod\AppData\Roaming\Microsoft\Signatures\My_Sign_files\colorschememapping.xml">
<style>
</style>
</head>

<body lang=EN-US style='tab-interval:.5in'>

<div class=WordSection1>

<p class=MsoAutoSig>Regards,</p>

<p class=MsoAutoSig>Prashant Ingole</p>

<p class=MsoAutoSig><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
 filled="f" stroked="f">
 <v:stroke joinstyle="miter"/>
 <v:formulas>
  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  <v:f eqn="sum @0 1 0"/>
  <v:f eqn="sum 0 0 @1"/>
  <v:f eqn="prod @2 1 2"/>
  <v:f eqn="prod @3 21600 pixelWidth"/>
  <v:f eqn="prod @3 21600 pixelHeight"/>
  <v:f eqn="sum @0 0 1"/>
  <v:f eqn="prod @6 1 2"/>
  <v:f eqn="prod @7 21600 pixelWidth"/>
  <v:f eqn="sum @8 21600 0"/>
  <v:f eqn="prod @7 21600 pixelHeight"/>
  <v:f eqn="sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
 <o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:152.25pt;
 height:42pt'>
 <v:imagedata src="C:\Users\Vinod\AppData\Roaming\Microsoft\Signatures\My_Sign_files\image001.jpg" o:title="Signature_Image"/>
</v:shape><![endif]--><![if !vml]><img width=203 height=56
src="C:\Users\Vinod\AppData\Roaming\Microsoft\Signatures\My_Sign_files\image001.jpg" v:shapes="_x0000_i1025"><![endif]></p>

<p class=MsoAutoSig><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>

Здесь я изменил относительный путь изображения на абсолютный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...