log4net smtp-appender nicht senden von E-Mails
Ich versuche zu implementieren, log4net, um E-Mail senden.
Folgendes ist mein code aber es ist kein Versand von E-Mails.
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="...." />
<from value="..." />
<subject value="Logging Message" />
<smtpHost value="smtp.gmail.com" />
<port value="465"/>
<authentication value="Basic" />
<username value="..."/>
<password value="..."/>
<EnableSsl value="true" />
<bufferSize value="1" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" />
</layout>
</appender>
und
<root>
<level value="WARN" />
<appender-ref ref="SmtpAppender" />
</root>
in der AssemblyInfo.cs
[assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)]
und wie erstelle ich das log-Objekt
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Diese Konfiguration ist in Ordnung, die für die Datei-Ausgabe, d.h. RollingFileAppender aber nicht für SmtpAppender.
N ich habe versucht, viele Lösungen aus dem internet, waren aber nicht wirklich hilfreich.
Bitte zeigen Sie mir die richtigen Richtungen. thankx im Voraus 🙂
- was ist der SMTP-Einstellungen so Aussehen wie in deiner config-Datei, können Sie zeigen, dass der Anteil der config müssen Sie
SMTP.Appender
- "Keine emails versenden" ist wirklich sehr, sehr vage. Das problem könnte sein, in vielen Orten. Ihr Erster Schritt ist für die Verwendung eines SMTP-host, den Sie kontrollieren können. Dies würde das problem einzugrenzen, ob oder ob nicht es ist die Appen vs. ob oder nicht der SMTP-host ist die Ablehnung der Nachrichten. (Das ist ein sehr großer Unterschied.) Versuchen Sie mit so etwas wie smtp4dev (smtp4dev.codeplex.com) als lokalen SMTP-host zu testen, ob der logger ist zumindest das tun, was Sie denken, es tut.
- Soweit ich mich erinnere, Gmail unterstützt nur SMTP über eine verschlüsselte Verbindung. Und ich bezweifle, dass plain SMTP-appender kann es aufzubauen.
- Ich habe gerade getestet meine Antwort mit meinem eigenen gmail-Konto, und es arbeitet mit log4net Appender C# .NET 4.0 VS2010 also nicht sicher, warum meine Antwort nicht helfen. Ich markierte meine Antwort für die Löschung Glück müssen auch sehen, was Ihr code dahinter aussieht, wie in Bezug darauf, wie Sie senden über Ihre Anmeldeinformationen ..
- Ihr problem auch aussieht, Sie sind nicht immer der richtige name der logger-zum Beispiel
var log = LogManager.GetLogger("SMTPAppender");
dann müssen Sie es auch tun, um die Konfiguration zu Lesenlog4net.Config.XmlConfigurator.Configure();
- In meinem Fall, ich brauche, um
Allow apps that use less secure sign in
zu gmail finden Sie unter stackoverflow.com/a/50733852/4573839
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mit einem sehr ähnlichen appender für SMTP-Nachrichten an Gmail, aber in meinem Fall habe ich einen anderen port verwenden:
Alle anderen Einstellungen sind die gleichen, so probieren und sehen, ob es für Sie arbeitet. Es ist der port Gmail verwendet für die TLS, hier referenziert.
Für diejenigen, die in Probleme laufen mit SmtpAppender ich würde empfehlen, das folgende in den appSettings-Knoten.
Wird es dann ausgegeben Diagnose wie diese unten, um Sie in die richtige Richtung
Bitte siehe mein Beispiel. Wenn Sie 2-Faktor-Authentifizierung bei GMail vergessen Sie nicht, um ein Passwort zu generieren, und verwenden Sie es hier:
Hoffe, es hilft.