Question

La fonction suivante fonctionne parfaitement:

    protected void SendWebMailMessage(string DisplayName, string From, string ReplyTo,
        string To, string Subject, string Body, string Attachments)
    {
        System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage();
        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver",
             "smtpout.secureserver.net");
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25);
        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 
             2);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/sendusername", From);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/sendpassword",
             mailpassword);
        msg.To = To;
        msg.From = DisplayName + "<" + From + ">";
        msg.BodyFormat = MailFormat.Html;
        msg.Subject = Subject;
        msg.Body = Body;
        msg.Headers.Add("Reply-To", ReplyTo);
        SmtpMail.SmtpServer = "smtpout.secureserver.net";
        SmtpMail.Send(msg);
    }

Cependant, je reçois un avertissement indiquant que System.Web.Mail est obsolète et que je devrais utiliser System.Net.Mail. J'ai donc utilisé System.Net.Mail et je suis venu avec la fonction suivante pour remplacer mon ancienne:

    protected void SendNetMailMessage(string DisplayName, string From, string ReplyTo, 
        string To, string Subject, string Body, string Attachments)
    {
        MailAddress addrfrom = new MailAddress(From, DisplayName);
        MailAddress addrto = new MailAddress(To);
        MailAddress replytoaddr = new MailAddress(ReplyTo);
        System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
        msg.From = addrfrom;
        msg.To.Add(addrto);
        msg.ReplyTo = replytoaddr;
        msg.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtpout.secureserver.net");
        smtp.Credentials = new NetworkCredential(From, mailpassword);
        smtp.Send(msg);
    }

Je ne reçois aucune exception ni erreur, mais mon message ne passe jamais. Est-ce que quelqu'un peut dites-moi ce que je pourrais faire de mal? Merci d'avance.

Était-ce utile?

La solution

Si je ne me trompe pas ... vous utilisez l’hébergement Goddady. Je l'utilise aussi ... et j'ai ** relay-hosting.secureserver.net ** en tant que serveur SMTP. Je ne sais pas… peut être quelque chose comme ça… ou vous n'avez pas défini le relais dans votre console.

Autres conseils

Je vous ai testé le code ci-dessus et cela fonctionne bien. J'ai dû ajouter le corps et les propriétés du sujet, mais même sans eux, j'ai quand même reçu un email vide. J'ai également essayé avec et sans fournir les informations d'identification, les deux ont fonctionné.

Initialement, je n'avais pas modifié votre chaîne hôte et j'ai reçu une exception avec le message "Échec d'envoi du courrier."

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top