Me respondo a mí mismo.
Mi problema era que estaba usando el servidor smtp incorrecto. Yo usaba “smtp.telefonica.net” y debía usar “smtp.e.telefonica.net”
Dejo el trozo de código como ejemplo:
Private Sub Enviar_Button_Click()
On Error Resume Next
'Creamos el Message y Configuration, para enviar emails a través del objeto CDO de Windows
Set oMsg = CreateObject("CDO.Message")
Set oConf = CreateObject("CDO.Configuration")
'Cargamos los valores por defecto
oConf.Load -1
'Configuramos el objeto CDO, con los datos de nuestra cuenta de correo
Set Flds = oConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.e.telefonica.net"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "
[email protected]"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxx"
.Update
End With
With oMsg
Set .Configuration = oConf
'ponemos el nombre y correo para el reply
.From = """XXX XXX, S.L."" <
[email protected]>"
'es decir, el destinatario y el asunto del mensaje
.To = "
[email protected]"
.Subject = "Asunto Prueba"
.TextBody = "Contenido Mensaje"
'.HTMLBody = cuerpo_en_formato_html en lugar de la propiedad .TextBody
.Send
End With
'Mostramos un mensaje, tanto si hay errores como si no los hay
If Err <> 0 Then
MsgBox ("No se ha podido enviar el email. -> Error: " + Err.Description)
Else
MsgBox ("El email se ha enviado correctamente.")
End If
End Sub