Question

J'ai le code,

 System.Web.Mail.MailMessage oMailMessage = new MailMessage();
            oMailMessage.From = strFromEmaild;
            oMailMessage.To = strToEmailId;
            oMailMessage.Subject = strSubject;
            oMailMessage.Body = strBody;
            SmtpMail.SmtpServer = "localhost";
            SmtpMail.Send(oMailMessage);

(toutes les variables ont des valeurs)

J'ai installé des services virtuels SMTP. pourquoi il est impossible d'envoyer des e-mails. pourquoi il ne fonctionne pas ??

EDIT

public bool SendMail(string strToEmailId, string strFromEmaild, string strSubject, string strBody)
{
    try
    {
        System.Web.Mail.MailMessage oMailMessage = new MailMessage();
        oMailMessage.From = strFromEmaild;
        oMailMessage.To = strToEmailId;
        oMailMessage.Subject = strSubject;
        oMailMessage.Body = strBody;
        SmtpMail.SmtpServer = "SERVERNAME";
        SmtpMail.Send(oMailMessage);

        return true;
     }
     catch (Exception ex)
     {
         return false;
     }
 }

J'ai ce code. Il exécute bien et retourne vrai, mais je ne reçois aucun email dans la boîte de réception.

Que pourrait-on mal?

Obtenir quelques mails à BadMail Dir C: \ Inetpub \ Mailroot \ Badmail aussi dans le répertoire de file d'attente d'obtenir des mails ici ... Qu'est-ce que cela veut dire ?? ..

Je trouve que le courrier ne peut envoyer aux comptes gmail ... pourquoi il est?

Était-ce utile?

La solution

Déterminez ce que l'erreur est:

try
{
 SmtpMail.Send(oMailMessage);
}
catch (Exception ex)
{
//breakpoint here to determine what the error is:
Console.WriteLine(ex.Message);
}

A partir de là, s'il vous plaît modifier votre question que les détails d'exception.

Autres conseils

Comme mentionné par d'autres, votre code est bien et est probablement quelque chose dans votre configuration SMTP ou peut-être votre client de messagerie de votre envoi de vos e-mails de test pour marquer est les comme spam. Si c'est un spam, bien que est facile à comprendre enoughto dehors. Si c'est quelque chose avec l'e-mail, vous pouvez aller dans votre dossier mailroot et leur y aura des dossiers là-bas avec les fichiers de courrier électronique ainsi qu'une description. Voir s'il y a quelque chose dans le dossier BadMail ou le dossier de file d'attente et les ouvrir dans le bloc-notes et afficher quelle erreur est donnée pour expliquer pourquoi ils ne sont pas envoyés.

Il est difficile de dire, mais il est possible que vous n'avez pas activé l'accès anonyme sur le serveur virtuel SMTP. Accédez à la boîte de dialogue des propriétés du serveur virtuel, sélectionnez l'onglet d'accès, cliquez sur le bouton de contrôle d'accès, et assurez-vous que l'accès anonyme est activé.

Il ne semble pas être quelque chose fonctionnellement mal avec votre programme. Il est probablement un problème de configuration entre votre programme et le serveur de messagerie. Je voudrais essayer ce qui suit pour diagnostiquer le problème.

  1. Enveloppez le code dans un bloc try / catch et voir si le message d'exception contient des données utiles
  2. Utilisez 127.0.0.1 au lieu de localhost juste pour écarter quelque chose de fou
  3. Vérifiez que votre serveur SMTP est en cours d'exécution sur le port standard (25 je crois)

Bonjour, vous pouvez suivre le code suivant:

try
        {
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            client.EnableSsl = true;
            client.Timeout = 100000;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new NetworkCredential("your gmail id", "password");
            MailMessage msg = new MailMessage();
            msg.To.Add(textBoxTo.Text);
            msg.From = new MailAddress("your gmail id");
            msg.Subject = textBoxSubject.Text;
            msg.Body = textBoxMsg.Text;
            Attachment data = new Attachment(textBoxAttachment.Text);
            msg.Attachments.Add(data);
            client.Send(msg);
            MessageBox.Show("Successfully Sent Message.");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
       }

avez-vous essayé 127.0.0.1 au lieu de Localhost? Aussi, vous avez testé que le service SMTP fonctionne, consultez cette pour plus de détails.

Dans le serveur smtp virtuel Ajouter les restrictions de relais et de contrôle de connexion afin qu'aucune des connexions extérieures sont autorisés

entrer image description ici

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