Buongiorno a tutti.
Ho una "vecchia" applicazione asp.net /.net 4.6.
Fino a qualche tempo fa era configurata per inviare posta da casella gmail, ed è sempre stata hostata su OVH.
Poi Gmail ha introdotto il controllo per le app "meno sicure" e se dopo un tot non vengono inviate mail, disabilita l'accesso all'account gmail.
Se provo ad usare la casella Aruba, non funziona: "sembra" che Aruba impedisca l'invio di email da server diversi da Aruba, è vero? Trovo qualcosa in giro, ma niente di preciso.
Adesso vorrei riconfigurare /re-fattorizzare il codice in modo che sia resiliente rispetto a tutto questo, e l'email parta sempre.
Qui il codice:
private static void MandaMail(int? idQP)
{
string myFrom = ConfigurationManager.AppSettings["mailAccount"];
string myTo = ConfigurationManager.AppSettings["LogMail"];
string myMailBody = "...";
string myMailSubject = "...";
try
{
MailMessage mail = new MailMessage(myFrom, myTo, myMailSubject, myMailBody);
mail.IsBodyHtml = true;
var smtpClient10 = new SmtpClient(ConfigurationManager.AppSettings["mailSMTP"])
{
Port = int.Parse(ConfigurationManager.AppSettings["mailSMTPPort"]),
Credentials = new NetworkCredential(ConfigurationManager.AppSettings["mailAccount"], ConfigurationManager.AppSettings["mailPassword"]),
EnableSsl = true,
};
smtpClient10.UseDefaultCredentials = true;
smtpClient10.Send(mail);
}
catch (Exception myEx)
{
Debug.WriteLine(myEx.Data);
Debug.WriteLine(myEx.Message);
//todo: log;
}
return;
}
Nel web.config invece:
<!--da GMAIL-->
<add key="mailAccount" value="myspecialcustomerservice@gmail.com" />
<add key="mailPassword" value="myPassword" />
<add key="mailSMTP" value="smtp.gmail.com" />
<add key="mailSMTPPort" value="587" />
<!--da ARUBA-->
<add key="mailAccount" value="myspecialcustomerservice@miodominio.it" />
<add key="mailPassword" value="myPassword />
<add key="mailSMTP" value="smtps.aruba.it" />
<add key="mailSMTPPort" value="465" />
...
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="myspecialcustomerservice@miodominio.it">
<network
host="smtps.aruba.it"
password="myPassword"
port="465"
userName="myspecialcustomerservice@miodominio.it"
defaultCredentials="true"
enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
QUalcuno che ha già affrontato questo problema, può aiutarmi?
La configurazione riportata sopra, ed il setting del codice è corretto?
QUale è la migliore pratica per inviare mail da una casella aruba su un server diverso da Aruba?
COme configurare in modo che se in futuro vogliono spostare l'invio da una casella GMAIL, basta solo cambiare il web.config?
Utilizzate delle librerie esterne?
Inoltre, il nodo mailSettings> <smtp deliveryMethod="... è indispensabile?
Un'ultima cosa: ho già pensato di mandare la mail in async, ovviamente (perchè ho scoperto nelle varie prove, un errore di timeout ma in quel tempo l'applicazione rimane appesa...)
Grazie in anticipo, per ogni consiglio.
Modificato da peppeliquidlive il 29 giugno 2021 07:26 -