Differenze tra le versioni di "Invio della posta elettronica"
Riga 28: | Riga 28: | ||
With SMTP | With SMTP | ||
.Host = "''nome_Host''" | .Host = "''nome_Host''" | ||
− | .Port = Porta_Host | + | .Port = ''Porta_Host'' |
.User = "''nome_utente''" | .User = "''nome_utente''" | ||
.Password = "''password''" | .Password = "''password''" |
Versione delle 08:44, 26 apr 2013
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" |1| |2|, si dovrà impostare nel progetto anche il componente gb.net.smtp:
Public Sub Button1_Click() Dim SMPT 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" .From = "indirizzo_email_di_chi_invia_la posta" .To.Add("indirizzo_email_del_destinatario") .Subject = "testo_dell'Oggetto_della_email" .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 Telnet
Se nel sistema è presente il programma Telnet, potrà essere utilizzato detto programma per la spedizione di posta elettronica, adattandovi un'interfaccia realizzata con Gambas. Per l'esempio si rinvia direttamente al sorgente allegato nel forum di Gambas-it.org .
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: |3|
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) |4| 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] Sembra, comunque, che ancora sussistano dei problemi nell'uso di questa Classe. Infatti, poiché un server remoto richiede la password, e poiché il componente gb.smtp non pare ancora essere in grado di gestire le password per l'autenticazione (fatta eccezione per la Plain authentication |[#Note|5]|), vengono spesso rilevati errori nell'invio delle email . Come affermato dallo stesso Minisini: " It is a pending problem that does not have a good solution at the moment: the gb.net.smtp component has no support for any authentication. I can't add it, because I don't know how to do it. So I should rewrite the component to use a library that know how to authenticate, like libesmtp. But that library has no MIME attachment support, so I have to do it myself. Not something that can be done in five minutes... Unless someone knows a library that can do SMTP with authentication *with* MIME attachment management! "
Va ricordato che l'autenticazione "PLAIN" prevede l'inserimento dell' user name e della password.
[2] Si ritiene molto opportuno rinviare a questa discussione nel Forum di Gambas-it.org .
[3] Il codice è tratto da un suggerimento dell'utente "Golia" del Forum di Gambas-it.org, al quale va un sentito ringraziamento.
[4] 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'"