Differenze tra le versioni di "Invio della posta elettronica"
Riga 2: | Riga 2: | ||
− | ==Uso del | + | ==Uso del Metodo ".SendMail()" della classe ''Desktop''== |
− | Per poter utilizzare il | + | Per poter utilizzare il Metodo ".SendMail()" della classe ''Desktop'', si dovrà impostare nel progetto anche il componente <FONT color=#B22222>''gb.desktop''</font>: |
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
Riga 17: | Riga 17: | ||
− | ==Uso della Classe "''SmtpClient''"== | + | ==Uso della Classe "''SmtpClient'' "== |
− | Per utilizzare la classe "''SmtpClient''", si dovrà impostare nel progetto anche il | + | Per utilizzare la classe "''SmtpClient'' ", si dovrà impostare nel progetto anche il Componente <FONT color=#B22222>''gb.net.smtp''</font>: |
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
− | + | Dim SMTP As New SmtpClient | |
− | + | Dim file_allegato AS String | |
file_allegato = File.Load("<FONT Color=gray>''/percorso/dell'eventuale/file/da/allegare''</font>") | file_allegato = File.Load("<FONT Color=gray>''/percorso/dell'eventuale/file/da/allegare''</font>") | ||
Riga 58: | Riga 58: | ||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
− | + | Dim SMTP As New SmtpClient | |
− | + | Dim file_allegato AS String | |
file_allegato = File.Load("<FONT Color=gray>''/percorso/dell'eventuale/file/da/allegare''</font>") | file_allegato = File.Load("<FONT Color=gray>''/percorso/dell'eventuale/file/da/allegare''</font>") | ||
Riga 79: | Riga 79: | ||
'''End''' | '''End''' | ||
− | + | L'invio di posta elettronica con la Classe ''SmtpClient'' funziona anche in un'applicazione ''a riga di comando''. | |
− | L'invio di posta elettronica con la Classe ''SmtpClient'' funziona anche in applicazione ''a riga di comando''. | ||
− | |||
====Invio a più destinatari contemporaneamente==== | ====Invio a più destinatari contemporaneamente==== | ||
− | Per inviare contemporaneamente la email a più destinatari, scrivendo il loro indirizzo di posta elettronica nel medesimo ''campo'' dei destinatari, si utilizzerà il Metodo " | + | Per inviare contemporaneamente la email a più destinatari, scrivendo il loro indirizzo di posta elettronica nel medesimo ''campo'' dei destinatari, si utilizzerà il Metodo ".Insert()" delle Proprietà disponibili: ".To.", ".Cc", ".Bcc". |
<BR>L'argomento del predetto Metodo "''.Insert( )''" sarà un vettore di tipo ''Strng[ ]'' contenente gli indirizzi di posta elettronica dei destinatari, ai quali inviare la medesima email. | <BR>L'argomento del predetto Metodo "''.Insert( )''" sarà un vettore di tipo ''Strng[ ]'' contenente gli indirizzi di posta elettronica dei destinatari, ai quali inviare la medesima email. | ||
Riga 97: | Riga 95: | ||
'''End''' | '''End''' | ||
− | |||
In questo caso il browser avvierà il programma per la gestione della posta elettronica. | In questo caso il browser avvierà il programma per la gestione della posta elettronica. | ||
Riga 103: | Riga 100: | ||
==Uso di ''Thunderbird'', ''Evolution'' e ''KMail''== | ==Uso di ''Thunderbird'', ''Evolution'' e ''KMail''== | ||
− | Mostreremo ora la modalità per inviare posta elettronica mediante "''Thunderbird''", "''Evolution''" e "''KMail''" con l'uso del comando ''Shell'': <SUP>[[[#Note|Nota 1]]]</sup> | + | Mostreremo ora la modalità per inviare posta elettronica mediante "''Thunderbird'' ", "''Evolution'' " e "''KMail'' " con l'uso del comando ''Shell'': <SUP>[[[#Note|Nota 1]]]</sup> |
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
Riga 109: | Riga 106: | ||
'''End''' | '''End''' | ||
− | |||
'''Public''' Sub postaElettronica(client As integer, destinatario As String, oggetto As String, corpo As String, allegato As String) | '''Public''' Sub postaElettronica(client As integer, destinatario As String, oggetto As String, corpo As String, allegato As String) | ||
Riga 174: | Riga 170: | ||
'''End''' | '''End''' | ||
− | |||
In questo caso il browser avvierà il programma per la gestione della posta elettronica. | In questo caso il browser avvierà il programma per la gestione della posta elettronica. | ||
Riga 180: | Riga 175: | ||
==Uso dello script ''mailbtn.sh'' con il comando ''Shell''== | ==Uso dello script ''mailbtn.sh'' con il comando ''Shell''== | ||
− | In "''/etc/acpi/events''" è possibile trovare tutti gli eventi riconosciuti. Se nella cartella "''/etc/acpi''" è presente lo script "''/etc/acpi/mailbtn.sh''", potrà essere utilizzato con il comando ''Shell'' per avviare il programma per la gestione della posta elettronica.: | + | In "''/etc/acpi/events'' " è possibile trovare tutti gli eventi riconosciuti. Se nella cartella "''/etc/acpi''" è presente lo script "''/etc/acpi/mailbtn.sh'' ", potrà essere utilizzato con il comando ''Shell'' per avviare il programma per la gestione della posta elettronica.: |
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
− | + | Dim pass As String = "propria_password" | |
If exist("/etc/acpi/mailbtn.sh") then | If exist("/etc/acpi/mailbtn.sh") then | ||
Riga 197: | Riga 192: | ||
− | + | =Note= | |
[1] Il codice è tratto da un suggerimento dell'utente "''Golia''" del Forum di Gambas-it.org, al quale va un sentito ringraziamento. | [1] Il codice è tratto da un suggerimento dell'utente "''Golia''" del Forum di Gambas-it.org, al quale va un sentito ringraziamento. | ||
Versione delle 16:06, 14 lug 2022
Per inviare la posta elettronica con Gambas possiamo utilizzare varie modalità.
Indice
Uso del Metodo ".SendMail()" della classe Desktop
Per poter utilizzare il Metodo ".SendMail()" della classe Desktop, si dovrà impostare nel progetto anche il componente gb.desktop:
Public Sub Button1_Click() Desktop.SendMail(["lista_degli_indirizzi_email_dei_destinatari"], ["lista_dei_destinatari_CC"], ["lista_dei_destinatari_BCC"], "oggetto_dell'email", "corpo_dell'email", "percorso_del_file_che_sarà_allegato") End
Se la lista CC e/o la lista BCC non è presente, allora si porrà uno spazio vuoto: [" "],... .
Se non deve essere allegato alcun file, allora si ometterà il corrispondente parametro di riferimento.
In questo caso il browser avvierà il programma per la gestione della posta elettronica.
Uso della Classe "SmtpClient "
Per utilizzare la classe "SmtpClient ", si dovrà impostare nel progetto anche il Componente gb.net.smtp:
Public Sub Button1_Click() Dim SMTP As New SmtpClient Dim file_allegato AS String file_allegato = File.Load("/percorso/dell'eventuale/file/da/allegare") With SMTP .Host = "nome_Host" .Port = Porta_Host .User = "nome_utente" .Password = "password" .Debug = True .From = "indirizzo_email_di_chi_invia_la posta" .To.Add("indirizzo_email_del_destinatario") .Subject = "testo_dell'Oggetto_della_email" .Encrypt = Net.SSL .Add("testo_del_corpo_dell'email - ossia_il_messaggio") If IsNull(file_allegato) = False Then .Add(file_allegato) .Send() End With End
Laddove in particolare:
- la prorpietà .Host si riferisce al Server di posta elettronica presso il quale il mittente possiede la registrazione di casella postale elettronica. Solitamente inizia con smtp.server.xx
- la proprietà .Port si riferisce alla porta in uscita del predetto Server;
- la proprietà .User si riferisce all'indirizzo della casella di posta elettronica di chi invia il messaggio di posta elettronica;
- la proprietà .Password si riferisce alla parola d'ordine utilizzata dall'utente per accedere al servizio di posta elettronica presso il proprio Server.
Mostriamo di seguito un semplice esempio più pratico.
Poniamo dunque il caso di avere un account presso server di posta elettronica tiscali.it . In tal caso sappiamo che il parametro in uscita relativo al Server host principale di Tiscali è: smtp.tiscali.it .
Sappiamo anche che il numero della porta per la posta in uscita è attualmente: 465.
Poniamo il caso che il nome scelto dall'utente mittente, identificativo della propria casella di posta elettronica, sia: nome_utente@tiscali.it, e che la sua password per accedere a tale casella postale sia: miapassword.
Poniamo infine il caso che la casella di posta elettronica del destinatario del messaggio sia: esempio_destinatario@yahoo.it .
Il codice Gambas sarà dunque il seguente:
Public Sub Button1_Click() Dim SMTP As New SmtpClient Dim file_allegato AS String file_allegato = File.Load("/percorso/dell'eventuale/file/da/allegare") With SMTP .Host = "smtp.tiscali.it" .Port = 465 .User = "nome_utente" ' ma va bene anche: nome_utente@tiscali.it .Password = "miapassword" .Debug = True .From = "nome_utente@tiscali.it" .To.Add("esempio_destinatario@yahoo.it") .Subject = "testo_dell'Oggetto_della_email" .Encrypt = Net.SSL .Add("testo_del_corpo_dell'email - ossia_il_messaggio") If IsNull(file_allegato) = False Then .Add(file_allegato) .Send() End With End
L'invio di posta elettronica con la Classe SmtpClient funziona anche in un'applicazione a riga di comando.
Invio a più destinatari contemporaneamente
Per inviare contemporaneamente la email a più destinatari, scrivendo il loro indirizzo di posta elettronica nel medesimo campo dei destinatari, si utilizzerà il Metodo ".Insert()" delle Proprietà disponibili: ".To.", ".Cc", ".Bcc".
L'argomento del predetto Metodo ".Insert( )" sarà un vettore di tipo Strng[ ] contenente gli indirizzi di posta elettronica dei destinatari, ai quali inviare la medesima email.
Uso del comando specifico html
Con alcuni oggetti che supportano il codice html si potrà utilizzare lo specifico comando A HREF + mailto:
Public Sub Button1_Click() ' Qui, come esempio, utilizzeremo l'oggetto "Message": Message.Info("<A HREF=\"mailto:indirizzo_email_del_destinatario\">Un testo qualsiasi</a>") End
In questo caso il browser avvierà il programma per la gestione della posta elettronica.
Uso di Thunderbird, Evolution e KMail
Mostreremo ora la modalità per inviare posta elettronica mediante "Thunderbird ", "Evolution " e "KMail " con l'uso del comando Shell: [Nota 1]
Public Sub Button1_Click() postaElettronica("client_di_posta", "indirizzo_destinatario", "Oggetto_dell'email", "Corpo_dell'email", "invio_file_allegato") End Public Sub postaElettronica(client As integer, destinatario As String, oggetto As String, corpo As String, allegato As String) Dim comandomail As String Dim hmail As Process If client = 0 Then ' ****Per "THUNDERBIRD": comandomail = "thunderbird -compose to='" comandomail &= destinatario comandomail &= "',subject='" comandomail &= oggetto comandomail &= "',body='" comandomail &= corpo If allegato = "no" Then comandomail &= "'" Else comandomail &= "',attachment='" comandomail &= allegato & "'" Endif ' Avvia il programma per la gestione della posta elettronica: hmail = Shell (comandomail) |2| Else If client = 1 Then ' ****Per EVOLUTION: comandomail = "evolution mailto:" comandomail &= destinatario comandomail &= "?subject='" comandomail &= oggetto If allegato = "no" Then comandomail &= "'" Else comandomail &= "'\\&attach=" comandomail &= allegato Endif comandomail &= "\\&body='" comandomail &= corpo comandomail &= "'" ' Avvia il programma per la gestione della posta elettronica: hmail = Shell (comandomail) Else If client = 2 Then ' ****Per KMAIL: comandomail = "kmail " If allegato = "no" Then Else comandomail &= " --attach " comandomail &= allegato Endif comandomail &= " mailto:" comandomail &= destinatario comandomail &= "?subject='" comandomail &= oggetto comandomail &= "'" comandomail &= "\\&body='" comandomail &= corpo comandomail &= "'" ' Avvia il programma per la gestione della posta elettronica: hmail = Shell (comandomail) Endif End
In questo caso il browser avvierà il programma per la gestione della posta elettronica.
Uso dello script mailbtn.sh con il comando Shell
In "/etc/acpi/events " è possibile trovare tutti gli eventi riconosciuti. Se nella cartella "/etc/acpi" è presente lo script "/etc/acpi/mailbtn.sh ", potrà essere utilizzato con il comando Shell per avviare il programma per la gestione della posta elettronica.:
Public Sub Button1_Click() Dim pass As String = "propria_password" If exist("/etc/acpi/mailbtn.sh") then Shell "echo " & pass & " | sudo -S /etc/acpi/mailbtn.sh" Message.Warning("Premere un tasto per avviare il programma di invio della posta elettronica.") Else Message.Warning("Non è presente nel sistema lo script\"mailbtn.sh\".") Endif End
In questo caso si avvierà il programma per la gestione della posta elettronica.
Note
[1] Il codice è tratto da un suggerimento dell'utente "Golia" del Forum di Gambas-it.org, al quale va un sentito ringraziamento.
[2] In sostanza la linea del comando è la seguente (senza file allegato):
hmail = Shell "thunderbird -compose to='indirizzo_del_destinatario',subject='Oggetto_dell'email',body='testo_del_corpo'"