2 messaggi dal 28 luglio 2017
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 -
2 messaggi dal 28 luglio 2017
Buongiorno,
qualche consiglio?
qualche link?

grazie in anticipo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.