Maison > développement back-end > C++ > Pourquoi mon e-mail C # Gmail SMTP envoie-t-il l'échec, et comment puis-je le réparer?

Pourquoi mon e-mail C # Gmail SMTP envoie-t-il l'échec, et comment puis-je le réparer?

Barbara Streisand
Libérer: 2025-01-31 19:21:40
original
441 Les gens l'ont consulté

Why Is My C# Gmail SMTP Email Sending Failing, and How Can I Fix It?

Débogage C # Gmail SMTP Email Envoi des problèmes

De nombreux développeurs utilisant le guide de débordement de pile populaire "Envoi de l'e-mail dans .NET via Gmail" rencontre toujours des problèmes de livraison par e-mail. Cet article explore les causes communes et propose des solutions alternatives.

Une erreur fréquente est "5.5.1 Authentification requise". Cela indique une défaillance d'authentification avec le serveur SMTP Gmail. Vérifiez vos informations d'identification Gmail et la section d'authentification de votre code C #.

Les paramètres de sécurité de Gmail sont un autre coupable potentiel. Gmail nécessite d'activer l'accès "moins sécurisé" pour une sécurité améliorée. Vérifiez vos paramètres de sécurité Gmail pour vous assurer que cela est activé. Notez que cela est généralement découragé pour des raisons de sécurité; Voir ci-dessous pour une approche plus sécurisée.

Si ces étapes ne résolvent pas le problème, passez en revue votre code C #. Confirmez que vos paramètres SMTP (adresse du serveur, port et utilisation SSL) sont exacts.

Pour une solution robuste, considérez cet exemple de code C # amélioré: (Remarque: Remplacez les espaces réservés à crochet par votre e-mail et votre mot de passe réels.)

<code class="language-csharp">using System;
using System.Net;
using System.Net.Mail;

public class EmailSender
{
    public static void SendEmail(string fromAddress, string password, string toAddress, string subject, string body)
    {
        using (var client = new SmtpClient("smtp.gmail.com", 587))
        {
            client.EnableSsl = true;
            client.Credentials = new NetworkCredential(fromAddress, password);
            var message = new MailMessage(fromAddress, toAddress, subject, body);
            client.Send(message);
            Console.WriteLine("Email sent successfully!");
        }
    }

    public static void Main(string[] args)
    {
        string fromEmail = "[email protected]";
        string password = "mypwd"; // Consider using a more secure method like an App Password
        string toEmail = "[email protected]";
        string subject = "Test Email";
        string body = "Test email body";

        SendEmail(fromEmail, password, toEmail, subject, body);
        Console.ReadKey();
    }
}</code>
Copier après la connexion

Remarque de sécurité importante: L'utilisation de "applications moins sécurisées" est fortement découragée. Pour une approche plus sécurisée, générez un mot de passe d'application dans les paramètres de votre compte Gmail et utilisez-le au lieu de votre mot de passe régulier dans le code C #. Cela fournit un mot de passe dédié à votre application sans compromettre la sécurité de votre compte Gmail principal. Reportez-vous à la documentation de Google pour les instructions sur la génération de mots de passe d'application.

En mettant en œuvre ces suggestions et en vérifiant soigneusement votre code, vous devez envoyer avec succès des e-mails via le serveur SMTP de Gmail en utilisant C #.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal