Frage

Ich habe 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);

(alle Variablen Werte)

Ich habe virtuelle SMTP-Dienste installiert. warum ist es nicht in der Lage E-Mails zu senden. warum es nicht funktioniert ??

Bearbeiten

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;
     }
 }

ich diesen Code haben. Es ist die Ausführung in Ordnung und kehrt wahr, aber ich bin nicht jede E-Mail in den Posteingang bekommen.

Was könnte falsch sein?

Erste einige Mails in BadMail Dir unter C: \ Inetpub \ Mailroot \ Badmail auch in Queue-Verzeichnis hier einige Mails bekommen ... was das bedeutet tut .. ??

Ich fand, dass die Post nur zu Google Mail-Konten gesendet werden ... warum ist es?

War es hilfreich?

Lösung

Bestimmen Sie

, was der Fehler ist:

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

Von hier aus bearbeiten Sie Ihre Frage mit dieser Ausnahme Details.

Andere Tipps

Wie bereits von anderen erwähnt, ist Ihr Code ist in Ordnung und ist höchstwahrscheinlich etwas in Ihrer SMTP-Konfiguration oder vielleicht Ihr E-Mail-Client Ihre Ihre Test-E-Mails zu senden, ist, sie als Spam markiert. Wenn es Spam ist, und ist so einfach enoughto Figur aus. Wenn es etwas mit der E-Mail, können Sie zu Ihrem mailroot Ordner gehen und ihre werden einige Ordner werden dort mit den E-Mail-Dateien zusammen mit einer Beschreibung. Sehen Sie, wenn es etwas gibt, in dem Badordner oder die Warteschlange-Ordner und öffnen Sie sie in Notepad und Blick nach oben, was Fehler für gegeben, warum sie nicht gesendet wurden.

Es ist schwer zu sagen, aber eine Möglichkeit ist, dass Sie nicht den anonymen Zugriff auf den virtuellen SMTP-Server aktiviert. Gehen Sie auf die die virtuellen Server-Eigenschaften-Dialog, wählen Sie die Registerkarte Zugriff auf die Access Control-Taste und stellen Sie sicher, dass anonymer Zugriff aktiviert ist.

Es scheint nicht alles funktionell falsch mit Ihrem Programm. Es ist wahrscheinlich ein Konfigurationsproblem zwischen Ihrem Programm und dem Mail-Server. Ich würde versuchen, die folgende, das Problem zu diagnostizieren.

  1. Wickeln Sie den Code in einen try / catch-Block und sehen, ob die Ausnahmemeldung Nutzdaten enthält
  2. Verwenden Sie 127.0.0.1 anstelle von localhost nur um auszuschließen, etwas verrückt
  3. Stellen Sie sicher, Ihr SMTP-Server auf dem Standard-Port läuft (25 glaube ich)

Hallo Sie können den folgenden Code wie folgt vor:

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);
       }

Sie haben versucht, 127.0.0.1 statt Localhost? Auch Sie haben getestet, dass der SMTP-Dienst funktioniert, lesen Sie in diesem Link .

In der virtuellen SMTP-Server hinzufügen Relayeinschränkungen und Verbindungssteuerung, so dass keiner der außerhalb Verbindungen sind erlaubt

eingeben Bild Beschreibung hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top