从.net发送邮件通过gmail smtp

时间:2014-07-07 03:42:08

标签: c# .net smtp gmail

我通过几个不同的帐户在gmail服务器上设置了几个域。

我可以使用以下代码从其中一个帐户(使用我用来登录cpanel的凭据)成功发送邮件,但是当我尝试从其中一个用户帐户发送邮件时(使用该用户的凭据),什么都没有。

我是否需要在gmail端设置一个设置才能启用此功能?

这里的代码是有效的,但仅来自我的某个域上的“父”帐户:

 SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
        client.EnableSsl = true;
        client.Credentials = new NetworkCredential("someaddress@somedomain.com", "somepassword");
        MailMessage msg = new MailMessage();
        msg.To.Add(new MailAddress("someuser@someotherdomain.com"));
        msg.Subject = "Inquiry from blah blah blah";
        msg.IsBodyHtml = true;
        msg.Body = "blah blah blah";
        msg.From = new MailAddress("someaddress@somedomain.com");
        client.Send(msg);

1 个答案:

答案 0 :(得分:3)

当您尝试从Gmail服务器发送邮件时,您必须使用Gmail凭据而不是您的域凭据。

例如使用相同的address@gmail.com&你的Gmail密码。

MailMessage mail = new MailMessage();
        mail.To.Add("recipient@yahoo.com");

        mail.From = new MailAddress("sommeemail@gmail.com", "sender name");
        mail.Subject = subject;
        mail.Body = body;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = new System.Net.NetworkCredential("sommeemail@gmail.com","password");
        smtp.EnableSsl = true;    
        smtp.Send(mail);