Buon mercoled a tutti, da un mio software devo poter inviare una mail con un file pdf allegato, pensavo di esserci riuscito, solo dopo ho scoperto che funziona solo con SMTP che non richiedono l’autenticazione, come risolvere il problema? allego il codice
visto che nel software uso il plugin CURLS per trasferimento file da e per internet potrebbe tornare utile?
dim testo1 as string
in testo 1 carico il testo dell’e-mail
dim mail as emailMessage
dim file as emailAttachment
dim i as integer
dim s as string
socket1.address = smtp
socket1.port = nr porta
socket1.username =
socket1.password =
mail = new emailMessage
mail.fromAddress = indirizzo mail
mail.headers.AppendHeader “Content-type”, “Text/HTML;charset=UTF-8”
mail.subject = “Documento "
testo1=trim(DefineEncoding (testo1 ,Encodings.utf8))
mail.bodyHTML =testo1
mail.BodyHTML=ReplaceAll(mail.bodyHTML,chr(13),”
")
s = replaceAll(PazWind.txtmail.text,",",chr(13))
s = replaceAll(s,chr(13)+chr(10),chr(13))
for i = 1 to countFields(s,chr(13))
mail.addRecipient trim(nthField(s,chr(13),i))
next
file = new emailAttachment
file.loadFromFile getFolderItem(testo)
mail.attachments.append file
socket1.messages.append mail
progressBar1.visible = true
socket1.sendMail
Mario
Ciao Mario,
Io invio con autenticazione:
[code]Dim email As New EmailMessage
email.FromAddress = “nome@miodominio.com”
email.Subject = “Comunicazione”
email.BodyPlainText = “mio messaggio”
email.AddRecipient(“destinatario@altrodominio.it”)
//–| set up the socket
Session.emailSocket.ConnectionType = SMTPSecureSocket.TLSv1
Session.emailSocket.SMTPConnectionMode = SMTPSecureSocket.ModeSSLTLS
Session.emailSocket.Secure = True
Session.emailSocket.Address = “smtps.mioprovider.it”
Session.emailSocket.Port = 465
Session.emailSocket.Username=“miousername”
Session.emailSocket.Password=“miapassword”
//—| send email
Session.emailSocket.Messages.Append(email)
Session.emailSocket.SendMail
if Session.emailSocket.NoError=0 then
MsgBox(“Inviato email”)
else
MsgBox(“Invio email fallito”+EndOfLine+_
str(Session.emailSocket.LastErrorCode))
end if[/code]
Spero ti sia utile.
Visto che nessuno mi ha proposto delle soluzioni sicuramente non mi sono spiegato, penso che lo stesso problema lo avr avuto pi di qualcuno di voi. Con il codice postato riesco ad inviare tranquillamente mail e allegato con Alice, ma con Libero, Gmail, Aruba ed altri la mail non viene inviata, rovistando nelle configurazione di quest’ultime il server della posta in uscita SMTP richiede l’autenticazione, come impostarla?
Mario
Grazie Roberto , più tardi proverò
Grazie, Grazie Roberto funziona
Mario
Il Post di Roberto Casalegno funzionante anche con le PEC
Per l’invio di mail tra un mittente e un destinatario che utilizzano Gmail (che poi l’ipotesi + frequente) la routine utilizzata da Roberto, che anche quella riportata nella documentazione di Xojo
https://documentation.xojo.com/api/networking/smtpsecuresocket.html
MailSocket.Address = “smtp.gmail.com”
MailSocket.Port = 465
MailSocket.ConnectionType = SMTPSecureSocket.TLSv1
MailSocket.SMTPConnectionMode = SMTPSecureSocket.ModeSSLTLS
MailSocket.Secure = True
MailSocket.UserName =
MailSocket.Password =
funziona soltanto se il destinatario setta in Gmail “consenti app. meno sicure su ON”
https://myaccount.google.com/lesssecureapps
La stessa documentazione di Xojo riporta:
“In order to connect to Gmail you’ll need to enable the “allow less secure apps” option as described in this Google support document:”
E mai possibile che nellipotesi evidenziata non possibile inviare una email con Xojo senza che il destinatario alteri la sicurezza della propria posta elettronica ?
Ci deve essere pure un modo.
a) Don’t use Gmail to send emails, it’s a bad idea.
b) Use Oauth for authentication, which is preferred anyways (CURL from the MBS plugin or the Chilkat plugin can do Oauth).
Un esempio con Oauth senza ricorrere a CURL ?
Ma Xojo dovrebbe consentire la possibilit di inviare una mail senza ricorrere a plugin esterni.
The keyword is “should”. Sending mails works more or less. Rather less as I remember (problems with encodings, attachment names get duplicated). And Gmail wants OAuth.
I have a full example on how to handle everything with the Chilkat plugin on my website on my website. Ups. Need to update the website. Here is the direct link: https://www.mothsoftware.com/downloads/gmail_oauth.zip