Descrição:
Em uma aplicação baseada em CDO – Collaboration Data Objects (ferramenta desenvolvida pela Microsoft para facilitar o envio de mensagens em aplicações) -, é utilizado o IIS – Internet Information Services – para enviar e-mails, sem necessidade do driver SendMail.
Entretanto, as mensagens não estão sendo enviadas, e uma mensagem de erro é retornada. Como resolver o problema?
Solução:
Na maioria das vezes isto acontece porque o servidor utilizado necessita de autenticação. Assim, para solucionar o problema, deve-se usar o seguinte script para envio de e-mail:
Sub CommandButton1_Click()
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Título do email"
objMessage.Sender = "remetente@servidor.com.br"
objMessage.To = "destinatario@servidor.com.br"
objMessage.TextBody = "Texto corpo do email"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.servidor.com.br"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "remetente@servidor.com"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha do usuário"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
objMessage.Send
MsgBox "O e-mail foi enviado com sucesso!"
End Sub