小编Dav*_*ess的帖子

Yahoo Mail的C#SMTP电子邮件发送代码失败但对其他服务器工作正常,任何人都可以帮忙吗?

我正在使用此代码通过yahoo SMTP服务器发送SMTP电子邮件,它是我正在编写的个人项目.

using System.Net.Mail;
using System.Net;

SmtpClient theClient = new SmtpClient("smtp.mail.yahoo.com", 465);
theClient.UseDefaultCredentials = false;
theClient.Credentials = new NetworkCredential("username", "password");
theClient.EnableSsl = true;

MailMessage theMessage = new MailMessage("username@yahoo.com", 
                                         "to.someone@gmail.com");

theMessage.Subject = "Dave test from C# subject";
theMessage.Body = "Dave test from C# body";

theClient.Send(theMessage);
Run Code Online (Sandbox Code Playgroud)

这是发送SMTP电子邮件的所有标准代码,但是...服务器似乎抛出错误.它强行终止连接.如果我使用其他SMTP服务器(如Gmail,Windows Live或其他各种ISP Smtp服务器),则不会发生这种情况.

这是异常和堆栈跟踪:

System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at ConsoleApplication1.Program.Main(String[] args) in E:\dev\ARCSoftware.FTPProcessor\ConsoleApplication1\Program.cs:line 28
Run Code Online (Sandbox Code Playgroud)

我知道问题不是环境问题,因为我可以使用Outlook Express将这些确切的设置发送到同一台服务器.我想知道我是否需要发送证书或其他什么?

如果您或您认识的任何人对此有任何想法,我将非常感谢您的帮助.

c# yahoo smtp smtpclient mailmessage

7
推荐指数
2
解决办法
2万
查看次数

是否可以在C#中的委托上传递System.Net.Mail.MailMessage对象?

我做了一个小的SmtpSender类来处理发送Smtp MailMessage对象.当消息发送或发送失败时,我引发一个包含"响应"对象的委托,该对象具有用户尝试发送的原始MailMessage以及成功/失败布尔值和错误字符串.然后,用户可以将MailMessage对象重新提交给sender类,以便在需要时再次尝试.

我想知道的是......如果我提出一个包含非托管资源的对象的委托,那么我是否需要在当前范围内处理该对象?如果是这样,在当前作用域中调用Dispose会杀死委托函数接收的对象吗?从长远来看,我担心内存泄漏.

任何建议或帮助将不胜感激.提前致谢!

戴夫

public delegate void SmtpSenderSentEventHandler(object sender, SmtpSendResponse theResponse);

public class SmtpSendResponse : IDisposable
{
    #region Private Members

    private MailMessage _theMessage;
    private bool _isSuccess;
    private string _errorMessage;

    #endregion

    #region Public Properties

    public MailMessage TheMessage
    {
        get { return _theMessage; }
        set { _theMessage = value; }
    }

    public bool IsSuccess
    {
        get { return _isSuccess; }
        set { _isSuccess = value; }
    }

    public string Error
    {
        get { return _errorMessage; }
        set { _errorMessage = value; …
Run Code Online (Sandbox Code Playgroud)

c# memory memory-leaks smtp mailmessage

5
推荐指数
1
解决办法
313
查看次数

标签 统计

c# ×2

mailmessage ×2

smtp ×2

memory ×1

memory-leaks ×1

smtpclient ×1

yahoo ×1