Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    VB.net - SmtpClient

    Salve a tutti. Ho il seguente problema e non so se è risolvibile.

    Il programma che ho creato ha una gestione degli errori che, in caso di errore da la possibilità di inviare un'e-mail di segnalazione a me.

    Per generare l'e-mail automatica che non utilizza alcun programma di posta elettronica uso il seguente codice:
    Dim message As New MailMessage
    With message
    .From = New Net.Mail.MailAddress("mittente@mittente.it")
    .To.Add("destinatario@destinatario.it")
    .Subject = "Error message"
    .Body = "Prova"
    End With

    Dim client As New SmtpClient()
    client.Host = "smtp.mittente"
    client.UseDefaultCredentials = True
    client.Send(message)

    Tutto va chiaramente bene se il mittente non cambia. Ma se lo stesso programma lo metto un un altro PC con i suoi account di posta elettronica, chiaramente l'invio di errore viene fatto da un altro mittente con un altro host smtp. C'è un modo per individuare run time l'account predefinito del computer e il relativo host smtp?

    Oppure fatemi sapere se avete qualche altra soluzione alternativa percorribile.

    Grazie anticipatamente della riposta.

    Daniele

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    VB.NET viene trattato assieme a tutti gli altri linguaggi del .NET Framework nel forum VisualBasic e .NET Framework.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43
    Non puoi creare un Form di Configurazione dove un utente salve i propri dati, tra cui i server smtp ?

    Ad esempio crei una chiave di tipo stringa all'interno del my.settings e poi la vai a richiamare quando ti serve per esempio

    'Per Modificare la Chiave
    codice:
    My.Settings.smtpserver = me.txtsmtpserver.text
    my.settings.save()
    Per Inviare l'E-Mail
    codice:
    Dim client As New SmtpClient()
    client.Host = my.settings.smtpserver
    client.UseDefaultCredentials = True
    client.Send(message)
    Sicut Nox Silentes

  4. #4
    Non puoi creare un Form di Configurazione dove un utente salve i propri dati, tra cui i server smtp ?
    è una soluzione... ma non sarà l'unica visto che ci sono programmi che non chiedono il server smtp però inviano ugualmente mail. Ovviamente non so come fare altrimenti l'avrei detto ma dovrebbero esserci delle dll free che bisogna inserire nei riferimenti del progetto e che fungono da server smtp.
    Resto in attesa anch'io di una soluzione valida.

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da mardok30
    è una soluzione... ma non sarà l'unica visto che ci sono programmi che non chiedono il server smtp però inviano ugualmente mail. Ovviamente non so come fare altrimenti l'avrei detto ma dovrebbero esserci delle dll free che bisogna inserire nei riferimenti del progetto e che fungono da server smtp.
    Resto in attesa anch'io di una soluzione valida.
    danjwo ha perfettamente ragione, una finestra di configurazione è la miglior soluzione.

    Se un programma non chiede il server è perchè è andato a recuperarlo dal registro di Windows, ma non è certo una best practice, anche perchè non so se con Vista si possa ancora farlo (non ho mai provato) ma nutro qualche dubbio.

    C'è un'altro motivo, di fondo, che è importante: se l'utente ha diversi account con diversi host smtp è logico e sacrosanto che sia lui a decidere (e non tu) quale debba/voglia utilizzare.

    Quello che vuoi fare, oltre che invasivo, è sbagliato:
    Personalmente mi accade di dover inviare e-mail quando sono a lavorare preso clienti diversi e quindi un solo indirizzo smtp mi creerebbe enormi problemi, perchè se voglio utilizzare la rete del cliente devo adeguarmi al suo host smtp.
    Capirai bene che se un programma mi obbligasse ad usare un solo host smtp, mi troverei costretto a rimuoverlo dal pc senza esitazione.

    Ciao

  6. #6
    Se un programma non chiede il server è perchè è andato a recuperarlo dal registro di Windows
    Se non hai Outlook installato e impostato dove se lo va a prendere?

    Quindi secondo te un componente come questo va a richiamarsi il nome del server smtp dal registro di windows?

    Capirai bene che se un programma mi obbligasse ad usare un solo host smtp, mi troverei costretto a rimuoverlo dal pc senza esitazione.
    In verità non capisco. Penso che all'utente poco interessa come avviene l'invio di un report di errore, se con il suo server SMTP o con un altro metodo. Di sicuro impostare tra le preferenze del programma il nome server SMTP non è la prima cosa che si va ad impostare.

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da mardok30
    Se non hai Outlook installato e impostato dove se lo va a prendere?

    Quindi secondo te un componente come questo va a richiamarsi il nome del server smtp dal registro di windows?
    Non capisco il nesso della domanda, ma il dove sono non è fondamentale.
    E' l'utente che deve autorizzare l'invio di e-mail, è una questione di sicurezza.


    Originariamente inviato da mardok30
    In verità non capisco. Penso che all'utente poco interessa come avviene l'invio di un report di errore, se con il suo server SMTP o con un altro metodo. Di sicuro impostare tra le preferenze del programma il nome server SMTP non è la prima cosa che si va ad impostare.
    Mi pare strano che non capisci. Impostare i parametri di posta è la prima cosa che un utente deve fare nel suo programma di posta. Altrimenti le e-mail come le spedisce?

    Non so se è corretto farlo all'insaputa del cliente/utente.
    Una domanda, ma la password dell'utente per inviare l'e-mail dove la trovi?


    Ciao

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,461
    Originariamente inviato da gibra
    Se un programma non chiede il server è perchè è andato a recuperarlo dal registro di Windows [...]
    ...oppure integra al suo interno un server SMTP, quindi è in grado di recapitare il messaggio senza doversi appoggiare ad un server SMTP esterno.

    Dubito comunque che nel caso in esame si tratti di una scelta da caldeggiare. Propendo anche io per la soluzione della finestra di dialogo in cui specificare i parametri del server SMTP di appoggio, ad esempio indirizzo host, porta, autenticazione (con nome utente e password, se necessari), ecc.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.