2015-11-10 3 views
0

Я пытаюсь создать сценарий VBA, который использует сервер Google, но домен компании. Типичным примером будет [email protected].электронная почта с доменом компании

Я использую следующий код, но он дает мне ошибку, если я использую доменное имя, которое не является gmail. Я хочу попросить пользователя ввести свою регистрационную информацию (имя пользователя и пароль).

Sub SendGMail() 

' Object creation 
Set objMsg = CreateObject("CDO.Message") 
Set msgConf = CreateObject("CDO.Configuration") 

' Server Configuration 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = UserForm1.TextBox1.Value 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = UserForm1.TextBox2.Value 
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1 
msgConf.Fields.Update 

' Email 
objMsg.To = UserForm1.TextBox1.Value 
objMsg.From = UserForm1.TextBox1.Value 
objMsg.Subject = "Test send with Gmail account" 
objMsg.HTMLBody = "HTML/Plain text message." 
objMsg.Sender = "Mr. Name" 

Set objMsg.Configuration = msgConf 

' Send 
objMsg.Send 

' Clear 
Set objMsg = Nothing 
Set msgConf = Nothing 

End Sub 

ответ

-1

Вы должны добавить Microsoft CDO Reference перед запуском кода

Tool -> Ссылка ---> Microsoft CDO для Windows 2000. Библиотека

Sub MailTest() 

Dim Mail As New Message 
Dim Config As Configuration 

Set Config = Mail.Configuration 

Config(cdoSendUsingMethod) = cdoSendUsingPort 
Config(cdoSMTPServer) = "smtp.gmail.com" 
Config(cdoSMTPServerPort) = 25 
Config(cdoSMTPAuthenticate) = cdoBasic 
Config(cdoSMTPUseSSL) = True 
Config(cdoSendUserName) = InputBox("EnterUsername") 
' Otherwise if you use text box 
'config(cdoSendUserName) = UserForm1.TextBox1.Text 
Config(cdoSendPassword) = InputBox("Password") 
' Otherwise if you use text box 
'config(cdoSendUserName) = UserForm1.TextBox2.Text 
Config.Fields.Update 


Mail.To = "[email protected]" 
Mail.From = Config(cdoSendUserName) 
Mail.Subject = "Email Subject" 
Mail.HTMLBody = "<b> mail body </b>" 
Mail.Sender = " MRSender" 

    Mail.Send 
    MsgBox "mail has been sent" 

End Sub 
+0

Может я знал, почему вниз голосовать мой ответ даже после того, как я дал правильный ответ? – newjenn

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