2013-01-14 156 views
0

我设法让Excel在Outlook中创建电子邮件,而不是我的主帐户。从备用(非主要)Outlook(2013)帐户从Excel(2013)发送电子邮件。 (VBA)

问题是,他们只是坐在第二个帐户发件箱,什么也不做。请注意,我可以手动发送来自此帐户的文件。

Dim MyOlApp As Object 
Dim MyItem As Outlook.MailItem 
Dim AttachName As String 
Dim SendTo As String 
Dim CCTo As String 
Dim E, F, G As Integer 
Dim Sys_Date As String 
'Sys_Date = Format(Now(), "DD-MMM-YYYY") 

F = Application.WorksheetFunction.CountA(Sheets("Sheet2").Range("A:A")) 
'G = F 


For E = 2 To F 

Sheets("Sheet2").Select 
AttachName = Cells(E, 2).Value 
SendTo = Cells(E, 5).Value 
CCTo = Cells(E, 6).Value 

Set MyOlApp = CreateObject("Outlook.Application") 
Set MyItem = MyOlApp.CreateItemFromTemplate("C:\localDocuments\2 - Reporting\1 - Guides + Sample Data etc\Email.oft") 
MyItem.Display 

On Error Resume Next 
With MyItem 
    Set .SendUsingAccount = MyOlApp.Session.Accounts.Item(2) 
    .To = SendTo 
    .CC = CCTo 
    .BCC = "" 
    .Subject = "Action required: " & AttachName 
    'You can add other files also like this 
    .Attachments.Add ("C:\localDocuments\2 - Reporting\Reports\" & AttachName & ".xlsx") 
    .Display 
    .Send 
End With 
On Error GoTo 0 

Set MyItem = Nothing 
Set MyOlApp = Nothing 


Next E 

UPDATE:

虽然我一直没能找到问题的真正原因。我设法找到了一个非常简单的修复方法。

我创建了一个新的Outlook配置文件,只有我们需要发送的备用帐户,它工作得很好。这是完美的,因为一旦运行3小时的报告,代码每周只能使用一次。

我可以看到,它不适用于以这种方式定期(全天)发送电子邮件的人。

仅供参考,您可以通过WIN 8 SEARCH/MAIL(按设置过滤)访问配置文件,选择MAIL,然后选择查看配置文件。

+1

这可能与Outlook中的“发送/接收”功能有关。我怀疑'。发送'只是指主账户?这[链接](http://www.slovaktech.com/code_samples.htm#SendReceive)可能会帮助您获得运行所需的代码以发送它。这是一个猜想,所以我希望它很有用。 –

+0

我稍后再看看。现在我已经创建了一个新的配置文件,只需要我需要发送的替代账户,它工作正常。 – aSystemOverload

回答

0

一个非常简单的修复。

我创建了一个新的Outlook配置文件,只有我们需要发送的备用帐户,它工作得很好。

我承认这对于以这种方式定期(整天)发送电子邮件的人来说不是一个很好的解决办法。

相关问题