Invio mail nell'evento load

di il
8 risposte

Invio mail nell'evento load

Buongiorno a tutti,

avrei bisogno di schedulare l'invio di una mail. Reperendo del codice in rete e adattandolo alle mie esigenze ho eseguito il seguente codice:


********************************************************************
Imports System.Net.Mail
Imports System.Net

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'****************************** PROVA INVIO MAIL **************************
Try
Dim smtpClient As New SmtpClient("smtp.office365.com", 587)
smtpClient.Credentials = New NetworkCredential("", "paperopoli")
smtpClient.UseDefaultCredentials = False
smtpClient.EnableSsl = True

Dim mailMessage As New MailMessage()
mailMessage.From = New MailAddress("")
mailMessage.To.Add("")
mailMessage.Subject = "Invio da VB.NET"
mailMessage.IsBodyHtml = True
mailMessage.Body = "Ciao, questa è una email per testare VB.NET"

smtpClient.Send(mailMessage)
Console.WriteLine("Email inviata")
Catch ex As SmtpException
Console.WriteLine("SMTP: " & ex.Message)
Console.WriteLine(e.ToString)
Catch ex As Exception
Console.WriteLine("ERRORE: " & ex.Message)
End Try

End

End Sub
End Class

*****************************************************************************

Non mi segnala nessun errore, ma lanciandolo non parte nulla....cosa ho combinato ?

Ho la posta aziendale in exchange e uso Visual studio 2008 (vecchiotto ma basta alle mie piccole esigenze)

dovrei anche inserire un allegato da reperire in una cartella specifica in rete, ma a quello ci penso dopo ...

Grazie e buona giornata a tutti

8 Risposte

  • Re: Invio mail nell'evento load

    Prova a togliere Try End Try e catch ed esegui. Vedi se hai messaggi d'errore

    P.S. Il codice nel forum va inserito tra tag CODE
  • Re: Invio mail nell'evento load

    Ciao oregon, ho provato ma restituisce il seguente errore
    
    System.Net.Mail.SmtpException non è stata gestita
      Message="Il server SMTP richiede una connessione protetta oppure il client non è stato autenticato. Risposta del server: 5.7.57 Client not authenticated to send mail. [ZR0P278CA0143.CHEP278.PROD.OUTLOOK.COM]"
      Source="System"
      StackTrace:
           in System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)    in System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)    in System.Net.Mail.SmtpClient.Send(MailMessage message)    in invio_mail.Form1.Form1_Load(Object sender, EventArgs e) in C:\PRG MAX\invio_mail\invio_mail\Form1.vb:riga 23    in System.EventHandler.Invoke(Object sender, EventArgs e)    in System.Windows.Forms.Form.OnLoad(EventArgs e)    in System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)    in System.Windows.Forms.Control.CreateControl()    in System.Windows.Forms.Control.WmShowWindow(Message& m)    in System.Windows.Forms.Control.WndProc(Message& m)    in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)    in System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      InnerException: 
    
  • Re: Invio mail nell'evento load

    Il codice è questo:
    
    Imports System.Net.Mail
    Imports System.Net
    
    Public Class Form1
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    '****************************** PROVA INVIO MAIL **************************
    'Try
    Dim smtpClient As New SmtpClient("smtp.office365.com", 587)
    smtpClient.Credentials = New NetworkCredential("pippo.pluto@paperino.it", "paperopoli")
    smtpClient.UseDefaultCredentials = False
    smtpClient.EnableSsl = True
    
    Dim mailMessage As New MailMessage()
    mailMessage.From = New MailAddress("pippo.pluto@paperino.it")
    mailMessage.To.Add("paperina@gmail.com")
    mailMessage.Subject = "Invio da VB.NET"
    mailMessage.IsBodyHtml = True
    mailMessage.Body = "Ciao, questa è una email per testare VB.NET"
    
    smtpClient.Send(mailMessage)
    Console.WriteLine("Email inviata")
    'Catch ex As SmtpException
    'Console.WriteLine("SMTP: " & ex.Message)
    'Console.WriteLine(e.ToString)
    'Catch ex As Exception
    'Console.WriteLine("ERRORE: " & ex.Message)
    'End Try
    
    End
    
    End Sub
    End Class
    
  • Re: Invio mail nell'evento load

    Le credenziali che usi esistono e sono corrette ? User e password?
  • Re: Invio mail nell'evento load

    Buongiorno,

    si sono corrette e sono quelle con cui ho configurato outlook
  • Re: Invio mail nell'evento load

    Buongiorno ragazzi,

    niente ... non ne vengo a capo le ho provate tutte. Ho la mail aziendale che sta su un server exchange e uso outlook365.

    Il problema sembra essere di sicurezza nella fase di login al server di posta .... richiede STARTTLS ma non riesco a settarlo.

    Con gmail riesco e comunque ho dovuto, nel mio accont gmail, creare una password dedicata solo alla mia applicazione e tutto funziona alla grande .... con exchange no.

    Grazie comunque a tutti per l'attenzione
  • Re: Invio mail nell'evento load

    A chi potesse servire, posto il codice per invio mail con allegato, usando Gmail, che ho reperito in rete e riadattato alle mie esigenze.
    [CODE] Imports System.Net.Mail Imports System.Net Imports System.Web Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '****************************** PROVA INVIO MAIL ************************** Dim Mail As New MailMessage Dim SMTP As New SmtpClient("smtp.gmail.com") Mail.Subject = "Prova invio mail" Mail.From = New MailAddress("name@gmail.com") SMTP.Credentials = New System.Net.NetworkCredential("paperino@gmail.com", "xxxx xxxx xxxx xxxx") '<-- Password dedicata all'applicazione e generata dal tuo account Gmail Mail.To.Add("paperino" & "@gmail.com") Mail.CC.Add("pluto@virgilio.it") Dim att As New System.Net.Mail.Attachment("C:\prova.xls") Mail.Attachments.Add(att) Mail.Body = "Ciao, prova di invio mail con Gmail" & vbCrLf & " " & vbCrLf & "Buona giornata a tutti" & vbCrLf & " " & vbCrLf & " " & vbCrLf & "La presente e-mail è stata generata automaticamente" & vbCrLf & "da un indirizzo di posta elettronica di solo invio;" & vbCrLf & "si chiede pertanto di non rispondere al messaggio." SMTP.EnableSsl = True SMTP.Port = "587" SMTP.Send(Mail) End End Sub End Class
  • Re: Invio mail nell'evento load

    Salve Xamm,
    Microsoft nella documentazione di SmtpClient ne sconsiglia l'uso perché è obsoleto e non supporta molti protocolli moderni, e consiglia l'uso di MailKit o altri client al suo posto.
    Vedi https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=net-5.0

    Lucius
Devi accedere o registrarti per scrivere nel forum
8 risposte