我通过几个不同的帐户在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);
答案 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);