Inviare mail con vb 2010 anche con le nuove sicurezze di google

di il
41 risposte

41 Risposte - Pagina 2

  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    sistemista ha scritto:


    Ho la versione framework 4.7.2 penso sia la più recente.
    Non è la più recente, ma è abbastanza recente.
    Io darei un'occhiata al codice, e alla peggio lo riporterei qui, o lo posterei da qualche parte.

    Andando per supposizioni senza vedere nulla, risulta piuttosto difficile comprendere quale errore è stato commesso: esaurite le possibilità più comuni di origine del problema, le restanti sono infinite.
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    In allegato ho messo solo la parte dell'invio della posta che è dove c'è la parte incriminata,la versione che uso è vs 2015.
    questo il link
    https://www.dropbox.com/s/3nvufn9sk3ogrvf/smtp.rar?dl=
    e questo è il codice(per comodità visiva.
    
    Imports System.Net
    Imports System.Net.Mail
    
     Private Sub btnInvia_Click(sender As Object, e As EventArgs) Handles btnInvia.Click
            Dim Mail As MailMessage = New MailMessage()
            Mail.From = New Mail.MailAddress("miaposta@gmail.com", "nomevisualizzato")
            Mail.To.Add(txtMaildest.Text)
            Mail.Subject = txtOggetto.Text
            Mail.Body = txtmessaggio.Text + ControlChars.CrLf
             [color=#FF0000] quì chiede connessione protetta[/color]
            Dim smtp = New SmtpClient() <---------
            '  smtp.UseDefaultCredentials = False
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network
            smtp.UseDefaultCredentials = False
            smtp.Credentials = New Net.NetworkCredential("miaposta@gmail.com", "xxxx xxxx xxxx xxxx")'la password da 16 caratteri fornita da gmail per le app
            smtp.Port = 587 'myporta
            smtp.EnableSsl = True
            smtp.Host = "smtp.gmail.com"
            smtp.Send(Mail)
        End Sub
    

    connessioneprotetta.jpg
    connessioneprotetta.jpg

  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    sistemista ha scritto:


    In allegato ho messo solo la parte dell'invio della posta che è dove c'è la parte incriminata,la versione che uso è vs 2015.
    Nell'esempio di codice da cui è stato preso spunto, viene indicato l'host direttamente nella costruzione del client.
    
    Dim smtp = New SmtpClient("smtp.gmail.com")
    
    Nel tuo codice invece il parametro è assente:
    
    Dim smtp = New SmtpClient()
    
    Non ho quindi idea di quale sia l'host a cui cerca di collegarsi.

    O meglio, dovrebbe usare le impostazioni del file di configurazione, ma il contenuto non è indicato e probabilmente non è corretto (magari manca il setting che abilita l'SSL).

    La documentazione del costruttore predefinito senza parametri è in questa pagina. Come si evince dalle note, senza indicare alcun parametro implica che tutta la configurazione sia specificata nel file app.config, nella sezione <mailSettings>.

    Se il file manca, o se le impostazioni indicate sono errate (es. porta 25 o SSL non attivo), è normale che vada in errore.

    Ciao!
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Anche mettendolo solleva lo stesso identico errore
    smtp.jpg
    smtp.jpg

  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Dal tipo di errore sembra che tu non abbia configurato correttamente l'account di Google che utilizzi ().
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Il problema è moooolto strano, perchè la riga da te indicata dove va in errore in realtà non sta facendo una connessione con il server smtp, ma semplicemente crea l'oggetto, e solo dopo imposta le proprietà dell'oggetto (tra cui il EnableSSL) e solo dopo con il smtp.Send fa la connessione al server
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Hai provato con la porta 465?
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Signori,ho copiato per filo e per segno il codice che è stato postato,ho cambiato le credenziali,ho cambiato la porta da 465 a 587 e viceversa ma il risultato non cambia a me sembra molto strano che il codice che ho copiato funzioni,sinceramente non sono convinto,se il codice è quello,le credenziali sono quelle come mai a me non funziona?eppure ho copiato per intero il tuo codice cambiando le credenziali,ma io vorrei che provaste voi con il codice di sopra e poi ditemi come è andata.
    Provate per vostra mera curiosità.
    Guardate bene quello che è stato scritto nei post precedenti e sopratutto riguardo alle passsword create da gmail per le app;è molto importante.
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    sistemista ha scritto:


    Signori,ho copiato per filo e per segno il codice che è stato postato [...]
    Sì, ma c'è sicuramente qualche cosa che è andato storto, perché Visual Studio continua a segnalare un errore su una riga errata, dove non viene effettuato ancora il collegamento con il server SMTP (come qualcuno ha fatto notare).

    Questo significa che le informazioni di debug non sono aggiornate, che la build non è "corrente", che c'è una discrepanza tra quello che viene eseguito e il codice vero e proprio.

    Siccome i file sul Dropbox erano parziali (mancava progetto e altre cose), io lo pubblicherei integralmente o costruirei alla peggio un programming "proof of concept" che faccia solo quello, avendo molta cura di come le informazioni vengono copiate/incollate, perché sicuramente c'è un ostacolo che impedisce di eseguire il programma nel modo corretto, ma senza i dettagli accurati risulta difficilissimo trovarlo.

    Purtroppo non vedo altre alternative.

    Ciao!
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Penso che questo problema potrebbe essere l'occasione per passare a visual studio 2022 community (potrai tenere comunque le altre versioni di visual studio) ed al posto di SmtpClient che è obsoleto https://learn.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=net-7.0 ti direi di usare MailKit , ciao
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Passare a visual studio 2022 non sono convinto che risolvi la situazione, io quel codice lo uso con Visual Studio 2010 e framework 4.0 e funziona perfettamente.
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    peo ha scritto:


    Hai provato con la porta 465?
    si,non cambia nulla.
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    oregon ha scritto:


    Dal tipo di errore sembra che tu non abbia configurato correttamente l'account di Google che utilizzi ().
    si con le stesse credenziali entro senza problemi.
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Alka ha scritto:


    sistemista ha scritto:


    Signori,ho copiato per filo e per segno il codice che è stato postato [...]
    Sì, ma c'è sicuramente qualche cosa che è andato storto, perché Visual Studio continua a segnalare un errore su una riga errata, dove non viene effettuato ancora il collegamento con il server SMTP (come qualcuno ha fatto notare).

    Questo significa che le informazioni di debug non sono aggiornate, che la build non è "corrente", che c'è una discrepanza tra quello che viene eseguito e il codice vero e proprio.

    Siccome i file sul Dropbox erano parziali (mancava progetto e altre cose), io lo pubblicherei integralmente o costruirei alla peggio un programming "proof of concept" che faccia solo quello, avendo molta cura di come le informazioni vengono copiate/incollate, perché sicuramente c'è un ostacolo che impedisce di eseguire il programma nel modo corretto, ma senza i dettagli accurati risulta difficilissimo trovarlo.

    Purtroppo non vedo altre alternative.

    Ciao!
    Si,farò come dici tu,lo creo ex novo e lo pubblico,può darsi che vi sia qualcosa che impedisca il corretto funzionamento.
  • Re: Inviare mail con vb 2010 anche con le nuove sicurezze di google

    Dunque,posto il codice nudo e crudo senza altri form o moduli vari,è solo questo.
    
    imports system.net
    imports system.net.mail
    Public Class Form1
        Dim Mail As New MailMessage
        Dim myclient As New SmtpClient("smtp.gmail.com")
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Mail = New MailMessage
            Mail.From = New MailAddress("miaposta@gmail.com")
            Mail.To.Add("destinatario@gmail.com")
            Mail.Subject = ("prova email")
            Mail.Body = ("messaggio")
            myclient.EnableSsl = True
            myclient.Port = 465
            myclient.Credentials = New Net.NetworkCredential("miaposta.com", "xxxxxxxxxxxxxxxx") ' password 16 lettere generata da gmail per le app
            myclient.Send(Mail)
            MessageBox.Show("INVIATA")
        End Sub
    End Class
    
    allora con la porta 587 ricevo l'errore come da post precedenti,ho cambiato la porta ed ho messo 465 come impostatata da thunderbird che ho installato sul PC ed ho ricevuto il seguente errore
    errore.jpg
    errore.jpg

    e quì incomincio ad avere dei dubbi sull'encoding del testo,poi non saprei se è questo il problema
    • System.Net.Mail.SmtpException non è stata gestita
      HResult=-2146233088
      Message=Errore durante l'invio della posta.
      Source=System
      StackTrace:
      in System.Net.Mail.SmtpClient.Send(MailMessage message)
      in testPosta.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\Boss\Documents\Visual Studio 2015\Projects\testPosta\testPosta\Form1.vb:riga 17
      in System.Windows.Forms.Control.OnClick(EventArgs e)
      in System.Windows.Forms.Button.OnClick(EventArgs e)
      in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
      in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
      in System.Windows.Forms.Control.WndProc(Message& m)
      in System.Windows.Forms.ButtonBase.WndProc(Message& m)
      in System.Windows.Forms.Button.WndProc(Message& m)
      in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(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)
      in System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
      in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
      in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
      in System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
      in Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
      in Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
      in Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
      in testPosta.My.MyApplication.Main(String[] Args) in :riga 81
      in System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
      in System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
      in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      in System.Threading.ThreadHelper.ThreadStart()
      InnerException:
      HResult=-2146232800
      Message=Impossibile leggere dati dalla connessione del trasporto: net_io_connectionclosed.
      Source=System
      StackTrace:
      in System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
      in System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
      in System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
      in System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
      in System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
      in System.Net.Mail.SmtpClient.GetConnection()
      in System.Net.Mail.SmtpClient.Send(MailMessage message)
      InnerException:
Devi accedere o registrarti per scrivere nel forum
41 risposte