2012-05-23 2 views
0

Мой клиент хочет распространять excel/vba своим клиентам, и vba автоматически отправит электронные письма.vba - отправка электронной почты от другого пользователя

Возможно, отправителю должна быть какая-то другая учетная запись, а не учетная запись внешнего вида лица, использующего vba, поскольку в электронном письме может быть частное лицо. Это действительно возможно?

Другое дело - печально известное всплывающее предупреждение при автоматизации таких задач. Я слышал, что Application.SendKeys не всегда работает, когда компьютер заблокирован.

Как работает CDO для этой задачи?

+0

возможный дубликат из [Отправить письмо от Excel в среде Exchange] (http://stackoverflow.com/questions/6122747/send-email-from-excel-in-exchange-environment) –

+0

Версия Outlook? – JimmyPena

ответ

1

На ваш первоначальный вопрос, который вы можете использовать MailItem.SentOnBehalfOfName с Outlook,

На безопасности предупреждение стандартные два решения для Outlook, являются:
1) Используйте Clickyes
2) Установить Outlook Redemption

+0

+ 1 :) Существует 3-й вариант. Снижение безопасности в Outlook. Я сделал это, и я больше не получаю эти всплывающие окна (я использую Off-2010) –

+0

@SiddharthRout Пока вы знаете, что это не рекомендуется. – JimmyPena

+0

@JP: Да на общем ПК это определенно не рекомендуется. Но на моем личном ноутбуке, у которого есть еще один доступ +, он полностью защищен последним программным обеспечением AV +. Я стараюсь не открывать какие-либо неизвестные файлы макросов, я не вижу никаких проблем :) –

0

Вам не нужно использовать Outlook для отправки электронной почты. Как вы спрашиваете, CDO работает без использования Outlook.

Вот несколько кодов, которые помогут вам начать работу.

Public Sub SendEmail(Subject As String, Body As String, ToPerson as String) 

Dim iCfg As Object 
Dim iMsg As Object 

Set iCfg = CreateObject("CDO.Configuration") 
Set iMsg = CreateObject("CDO.Message") 

With iCfg.Fields 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email-account" 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendemailaddress") = "[email protected]" 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 
    .Update 
End With 

With iMsg 
    .Configuration = iCfg 
    .Subject = Subject 
    .TextBody = Body 
    .To = ToPerson 
    .Send 
End With 

Set iMsg = Nothing 
Set iCfg = Nothing 

End Sub 
+2

Вам следует ссылаться на источник этого кода. – brettdj

+0

У меня больше нет исходного источника. Это код, который я использую в одном из моих проектов. –

+0

Я тоже использую этот код. Вот [источник] (http://www.rondebruin.nl/cdo.htm). – deusxmach1na

Смежные вопросы