Inviare una mail in vbscript

di il
1 risposte

Inviare una mail in vbscript

Ciao a tutti,
quando si è alle prese con un linguaggio di programmazione nuovo capita spesso di bloccarsi per delle cavolate che magari per altri sono ovvie, beh questo sembra essere il mio caso. Ho creato uno script per l'invio automatico delle mail

Set objMail = CreateObject("CDO.Message")
Set objConfig = CreateObject("CDO.Configuration")
With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.dominio.com"
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")="nomeutente"
.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "password"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.update
End With
Set objMail.Configuration = objConfig
objMail.From = "mittente"
objMail.To = "destinatario"
objMail.Subject = "oggetto"
objMail.Fields("urn:schemas:httpmail:importance").Value = 2
objMail.Fields.update()
objMail.TextBody = "mail di prova "
objMail.HTMLBody = "mail di prova"
objMail.AddAttachment "allegato"
objMail.Send()
Set objMail = Nothing

Il suddetto codice però genera un errore :
The server rejected one or more recipient addresses. The server response was: 554 5.7.1 <maildestinatario>: Relay access denied
il server smtp è sicuramente giusto, quindi dove sta l'errore?? grazie anticipatamente per la disponibilità

1 Risposte

  • Re: Inviare una mail in vbscript

    Niente sono riuscito a risolvere da solo, dovevo aggiungere :
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    perché il server smtp utilizza una connessione sicura di tipo STARTTLS. Inserisco il codice completo magari semplifica la vita a qualcuno :
    
    
    Const cdoSendUsingPort = 2 
    Const cdoAnonymous = 0 'Nessun tipo di autentificazione 
    Const cdoBasic = 1 ' autentificazione base 
    Const cdoNTLM = 2 'NTLM
    Set objMessage = CreateObject("CDO.Message") 
    objMessage.Subject = "Prova Mail Vbscript" 
    objMessage.From = "mittente " 
    objMessage.To = "destinatario"
    'objMessage.CC=""
    'objMessage.BCC="" 
    objMessage.TextBody = " questo è un messaggio di prova" & vbCRLF & "inviato tramite linguaggi VBscript giorno " & Date & " alle  " & Time 
    'objMessage.Attachments="C:\Script\ABBN\Documento.ini"
    objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    'nome del server smtp
    objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    'Tipo di autentificazione nessuna , Base , NTLM 
    objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
    'NomeUtente  registrato nel server smtp
    objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "nomeutente"
    'Password
    objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
    ' Porta del Server  
    objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
    'Usa  SSL Per la connessione  (False or True)
    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
    
    testato con un account gmail
Devi accedere o registrarti per scrivere nel forum
1 risposte