C# 发送SMTP电子邮件(是的,我知道)
我意识到这个问题已经被问了一百次了,但遗憾的是我仍然有同样的问题。因此,我已经在这里将某人的Vb.Net解决方案转换为C#,但我的应用程序一直挂起直到超时。我允许exe通过防火墙,所以这不是问题所在。对于我错过/出错的任何帮助,我们将不胜感激。这是我的密码C# 发送SMTP电子邮件(是的,我知道),c#,smtp,C#,Smtp,我意识到这个问题已经被问了一百次了,但遗憾的是我仍然有同样的问题。因此,我已经在这里将某人的Vb.Net解决方案转换为C#,但我的应用程序一直挂起直到超时。我允许exe通过防火墙,所以这不是问题所在。对于我错过/出错的任何帮助,我们将不胜感激。这是我的密码 MailMessage mailMsg = new MailMessage(); mailMsg.To.Add("a@b.com"); // From MailAddress m
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("a@b.com");
// From
MailAddress mailAddress = new MailAddress("x@y.com");
mailMsg.From = mailAddress;
// Subject and Body
mailMsg.Subject = "subject";
mailMsg.Body = "body";
SmtpClient smtpClient = new SmtpClient("smtp.virginmedia.com", 465);
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential("x@y.com", "MyPassword");
smtpClient.EnableSsl = true;
smtpClient.Credentials = credentials;
//smtpClient.
smtpClient.Send(mailMsg);
提前欢呼
Robbo将以下内容添加到app.config。 再次运行应用程序。现在,您将在日志中看到超时发生的确切位置。如果是在连接期间,您会被防火墙阻止或使用错误的端口。但也许它是在另一个时间发生的
<system.diagnostics>
<sources>
<source name="System.Net">
<listeners>
<add name="TraceFile"/>
<add name="TraceConsole"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/>
<add name="TraceConsole" type="System.Diagnostics.ConsoleTraceListener"/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
<trace autoflush="true"/>
</system.diagnostics>
为响应干杯。尝试添加该选项,但超时。但是没有从中得到更多的信息。内部异常为空。日志中应该有很多关于超时发生时正在执行的操作的信息。啊,我是个白痴,在错误的位置查找日志文件。明白了,干杯