Вложения становятся встроенными - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть макрос Excel, используемый для отправки электронных писем с вложениями, которые являются книгами Excel.Иногда вместо прикрепляемого файла он становится встроенным объектом.Этот встроенный объект доступен для пользователей внутри компании (после нажатия кнопки «Вы собираетесь активировать встроенный объект, который может содержать вирусы или иным образом причинять вред вашему компьютеру. Важно убедиться, что он из надежного источника»Вы хотите продолжить? "), Но для тех, кто находится за пределами компании, электронная почта, похоже, вообще не имеет вложений.

Это происходит случайно, и только на некоторых компьютерах.Таким образом, если список содержит 15 списков адресов электронной почты и вложений, это случается где-то между 0 и 15 письмами.Чтобы быть ясным, моя цель состоит в том, чтобы отправлять электронные письма с регулярными вложениями.Запуск Excel 2003, Outlook 2003 и Windows XP.

Sub Email()  
Dim P As String  
Dim N As String  
Dim M As String  
Dim Subject As String  
Dim Addresses As String  
Dim olApp As Outlook.Application  
Dim olNewMail As Outlook.MailItem  

Application.DisplayAlerts = False  

M = ActiveWorkbook.Name  

For c = 2 To 64000  
    If Range("B" & c) = "" Then Exit For  
    If UCase(Range("E" & c)) = "Y" Then  
        Workbooks(M).Sheets("Main").Activate  
        Subject = Range("A" & c)  
        Addresses = Range("B" & c)  
        P = Range("C" & c)  
        N = Range("D" & c)  
        If Right(P, 1) <> "\" Then P = P & "\"  
        If Right(N, 4) <> ".xls" Then N = N & ".xls"  
        Set olApp = New Outlook.Application  
        Set olNewMail = olApp.CreateItem(olMailItem)  
        With olNewMail  
            .Display  
            .Recipients.Add Addresses  
            Application.Wait (Now + TimeValue("0:00:01"))  
            SendKeys ("{TAB}")  
            .Subject = Subject  
            .Attachments.Add P + N  
            .Send  
        End With  
        Set olNewMail = Nothing  
        Set olApp = Nothing  

    End If  
Next c  

Range("E2:E65536").ClearContents  
Application.DisplayAlerts = True  

End Sub  

1 Ответ

1 голос
/ 05 апреля 2010

Возможно, вам просто нужно явно установить формат сообщения, используя свойство olMailItem.BodyFormat: http://msdn.microsoft.com/en-us/library/aa211430(v=office.11).aspx

Звучит так, как будто оно отображается как сообщение в расширенном формате (с вложением в качестве встроенного объекта), а не как электронная почта в формате HTML.

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