如何从/向任何电子邮件地址发送电子邮件,如yahoo gmail pop3?

时间:2016-02-29 13:25:13

标签: c# .net winforms

我现在尝试的是发送电子邮件到我自己的Gmail帐户,但到目前为止,我尝试过尝试发送时出错。

我没有尝试发送到我的pop3电子邮件,而不是发送到雅虎或我的pop3或雅虎。现在我正试图发送到我的Gmail。

在按钮点击事件中:

private void button1_Click(object sender, EventArgs e)
{
    sendit("myg@gmail.com");
}

然后在方法sendit

public string sendit(string ReciverMail)
{
        MailMessage msg = new MailMessage();

        msg.From = new MailAddress("myg@gmail.com");
        msg.To.Add(ReciverMail);
        msg.Subject = "Hello world! " + DateTime.Now.ToString();
        msg.Body = "hi to you ... :)";
        SmtpClient client = new SmtpClient();
        client.UseDefaultCredentials = true;
        client.Host = "smtp.gmail.com";
        client.Port = 587;
        client.EnableSsl = true;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.Credentials = new NetworkCredential("myg@gmail.com", "myp");
        client.EnableSsl = true;
        client.Timeout = 20000;
        try
        {
            client.Send(msg);
            return "Mail has been successfully sent!";
        }
        catch (Exception ex)
        {
            return "Fail Has error" + ex.Message;
        }
        finally
        {
            msg.Dispose();
        }
}

使用断点总是到达catch部分显示消息:

  

" SMTP服务器需要安全连接,否则客户端不需要   认证。服务器响应为:5.5.1需要身份验证。   在"

了解详情

2 个答案:

答案 0 :(得分:0)

删除client.UseDefaultCredentials = true;然后重试!

如果设置了UseDefaultCredentials,则客户端会尝试使用当前登录的用户发送电子邮件。如果UseDefaultCredentials为false,那么它将使用您手动设置的凭据!

答案 1 :(得分:0)

这是一个安全问题,Gmail默认阻止您从自定义应用程序访问您的邮件帐户。您需要为安全性较低的应用程序启用访问权限。

以下是链接:Less secure applications