Uso account aziendale Outlook, e sono riuscito a far funzionare con il tuo file.
Per testare passo passo ho da prima escluso la parte di codice dell'allegato.
Ho impostato a 1 la parte del protocollo di sicurezza
Ha funzionato la prima volta. da outlook ad outlook nello stesso dominio.
Ho quindi abilitato anche la parte di codice in cui si inserisce l'allegato, ho testato e la mail è stata inviata e ricevuta con successo, compreso l'allegato.
Quindi ho deciso di copiaincollare in un altro file il codice, in quel momento il file è crashato e ora non va più niente XD
Qualche idea?
Ho già resettato il profilo utente.
Ho provato con yahoo e mi da lo stesso problema.
Ho provato con gmail e mi da lo stesso problema.
Ho provato con un servizio terzo che offre la possibilità di testare invio di mail tramite smtp e ha funzionato correttamente
Ho notato nei vari test che il codice si blocca dopo aver letto il case SSL, prima di passare alla function di smtpUser.
Purtroppo l'utilizzo di applicazioni come Outlook o Mozilla Thunderbird o servizi esterni o script phyton non possono essere utilizzati come risoluzione in questo caso in quanto il file sarà usato da più postazioni e diversi sistemi operativi.
Ho utilizzato gli stessi parametri del settaggio smtp di smtp.office365.com per provare a inviare una mail tramite il powershell di windows, e tutto funziona correttamente. la mail è arrivata.
Codice: Seleziona tutto
param (
[string]$smtpServer = "smtp.office365.com",
[int]$smtpPort = 587,
[string]$smtpUser = "mail@dominio.com",
[string]$smtpPass = "password",
[string]$from = "mail@dominio.com",
[string]$to = "mail@dominio.com",
[string]$subject = "prova invio",
[string]$body = "testo messaggio"
)
try {
$securePass = ConvertTo-SecureString $smtpPass -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($smtpUser, $securePass)
$mailMessage = New-Object system.net.mail.mailmessage
$mailMessage.from = $from
$mailMessage.To.Add($to)
$mailMessage.Subject = $subject
$mailMessage.Body = $body
$smtpClient = New-Object system.net.mail.smtpclient($smtpServer, $smtpPort)
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = $cred
$smtpClient.Send($mailMessage)
Write-Output "Email sent successfully."
} catch {
Write-Output "Failed to send email. Error: $_"
}
Non riesco a capire quindi dove stia l'errore. Per esclusione sembrerebbe proprio che l'errore sia in come si sta facendo interfacciare OpenOffice al server SMTP di office365
Ho inserito alcuni controlli, leggendo l'errore che veniva generato al rientro dal listener "smtp_" ho provato a sostituire STARTTLS a SSL e sono riuscito a superare questo blocco arrivando al listener "user_"
Codice: Seleziona tutto
' ===== server properties =====
function smtp_GetValueByName(what)
select case what
case "ServerName"
smtp_GetValueByName = smtpServer
case "Port"
smtp_GetValueByName = smtpPort
case "ConnectionType"
if smtpSecure = "SSL" or smtpSecure = "TLS" or smtpSecure = "STARTTLS" then
smtp_GetValueByName = smtpSecure
else
smtp_GetValueByName = "Insecure"
end if
end select
MsgBox "smtp_GetValueByName(" & what & ") = " & smtp_GetValueByName ' Debug message
end function
Purtroppo Sono ancora bloccato, si blocca al rientro dal listener "user_"
l'errore che si genera è molto strano, sembrerebbe qualcosa a che fare con l'autenticazione AUTH oppure qualcosa a che fare con delle librerie python.
"Type: com.sun.star.uno.RuntimeException
Message: < class 'smtplib.SMTPException'> : SMTP AUTH extension not supported., traceback follows C:\Programs Files (x86)\OpenOffice 4\program\python-core-2.7.18\lib\smtplib.py:586 in function login() [raise SMTPException("SMTP AUTH extension not supported by server.")]
C:\Program Files (x86)\OpenOffice 4\program\mailmerge.py:132 in function connect() [self.server.login(user, password)]"
Non ne vengo fuori, come scavalcare questo problema?
Grazie mille
Ciao