Invio della posta elettronica
Per inviare la posta elettronica con Gambas possiamo utilizzare varie modalità.
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 $fl AS String
$fl = File.Load("percorso_del_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")
.Add($fl)
.Send()
End With
End
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: |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'"