Gmail的:如何以编程方式发送电子邮件(Gmail: How to send an email p

2019-07-03 14:52发布

可能的精确副本: 在C#.NET发送电子邮件通过Gmail

嗨,

我想使用Gmail发送电子邮件:

我想,我在这个网站和其他网站,但我总是得到同样的错误中发现的各种例子:
无法连接到远程服务器 - > System.net.Sockets.SocketException:可以进行无连接,因为目标积极地拒绝它209.85.147.109:587

    public static void Attempt1()
    {
        var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("MyEmailAddress@gmail.com", "MyPassWord"),
            EnableSsl = true
        };
        client.Send("MyEmailAddress@gmail.com", "some.email@some.com", "test", "testbody"); 
    }

有任何想法吗?

UPDATE

更多细节。

也许我应该说我做了什么其他的尝试,给了我同样的错误:(注意:当我没有具体说明它tryed端口25的端口)

    public static void Attempt2()
    {
        var fromAddress = new MailAddress("MyEmailAddy@gmail.com", "From Name");
        var toAddress = new MailAddress("MyEmailAddy@dfdf.com", "To Name");
        const string fromPassword = "pass";
        const string subject = "Subject";
        const string body = "Body";
        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
        };
        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = body
        }
            ) { smtp.Send(message); }
    }


    public static void Attempt3()
    {
        MailMessage mail = new MailMessage();
        mail.To.Add("MyEmailAddy@dfdf.com");
        mail.From = new MailAddress("MyEmailAddy@gmail.com");
        mail.Subject = "Email using Gmail";

        string Body = "Hi, this mail is to test sending mail" +
                      "using Gmail in ASP.NET";
        mail.Body = Body;

        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Credentials = new System.Net.NetworkCredential
             ("MyEmailAddy@gmail.com", "pass");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }

Answer 1:

我使用下面的代码:

SmtpClient sc = new SmtpClient("smtp.gmail.com");
NetworkCredential nc = new NetworkCredential("username", "password");//username doesn't include @gmail.com
sc.UseDefaultCredentials = false;
sc.Credentials = nc;
sc.EnableSsl = true;
sc.Port = 587;
try {
    sc.Send(mm);
} catch (Exception ex) {
    EventLog.WriteEntry("Error Sending", EventLogEntryType.Error);
}


Answer 2:

用下面的代码,它将成功的工作。

MailMessage mail = new MailMessage();
mail.From = new MailAddress("abc@mydomain.com", "Enquiry");
mail.To.Add("abcdef@yahoo.com");
mail.IsBodyHtml = true;
mail.Subject = "Registration";
mail.Body = "Some Text";
mail.Priority = MailPriority.High;

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
//smtp.UseDefaultCredentials = true;
smtp.Credentials = new System.Net.NetworkCredential("xyz@gmail.com", "<my gmail pwd>");
smtp.EnableSsl = true;
//smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

smtp.Send(mail);

但是,有与使用Gmail的问题。 该电子邮件将发送成功,但收件人的收件箱将有Gmail地址的“从地址”,而不是在代码中提到的“从地址”。

为了解决这个问题,请按照下面的链接中提到的步骤。

http://karmic-development.blogspot.in/2013/10/send-email-from-aspnet-using-gmail-as.html

以下所有上述步骤之前,您需要验证您的Gmail帐户以允许访问你的应用程序,也是设备。 请在下面的链接帐户验证所有的步骤:

http://karmic-development.blogspot.in/2013/11/allow-account-access-while-sending.html



Answer 3:

这是我的连接资源从Java连接到Gmail

<!-- Java Mail -->
    <Resource name="mail/MailSession" auth="Container" type="javax.mail.Session" 
                mail.debug="true"
                mail.transport.protocol="smtp"
                mail.smtp.host="smtp.gmail.com"
                mail.smtp.user="youremail@gmail.com"
                mail.smtp.password="yourpassword"
                mail.smtp.port="465"
                mail.smtp.starttls.enable="true"
                mail.smtp.auth="true"
                mail.smtp.socketFactory.port="465"
                mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
                mail.smtp.socketFactory.fallback="false" 
                mail.store.protocol="pop3"
                mail.pop3.host="pop.gmail.com"
                mail.pop3.port="995" />

连接上的安全端口(465 SMTP和995 POP3)您的Gmail帐户,并使用任何可用的.NET SSL厂能够安全地连接到Gmail。



Answer 4:

你确定你的Gmail帐户设置为允许POP / SMTP连接? 这是你可以打开,当你选择断配置选项。



Answer 5:

你可以在这里看到我的博客文章在http://codersatwork.wordpress.com/2010/02/14/sending-email-using-gmail-smtp-server-and-spring-mail/这也解释了如何使用Spring邮件通过Gmail SMTP服务器发送电子邮件。

我用java,但你可以看到的配置和使用,在你的C#代码。



Answer 6:

尝试使用端口号465 SSL连接



文章来源: Gmail: How to send an email programmatically