C# 在dotnet中使用MailMessage.From

C# 在dotnet中使用MailMessage.From,c#,.net,sendmail,smtpclient,C#,.net,Sendmail,Smtpclient,在上面的代码中,为什么mail.From是必需的?甚至我在smtpClient.Credentials中指定了邮件id 即使我使用一些邮件id指定了mail.From,收件人也不会从该邮件地址接收邮件,而是从xxxxx@gmail.com是我在smtpClient.Credentials中指定的。Credentials发件人应该是邮件发送的地址。 这可能与您的Smtp凭据不同。某些服务器将允许您使用与您的邮件地址不同的用户名 Gmail显示收到邮件的电子邮件地址。 他们这样做是为了用户不会错误地

在上面的代码中,为什么mail.From是必需的?甚至我在smtpClient.Credentials中指定了邮件id


即使我使用一些邮件id指定了mail.From,收件人也不会从该邮件地址接收邮件,而是从xxxxx@gmail.com是我在smtpClient.Credentials中指定的。Credentials

发件人应该是邮件发送的地址。 这可能与您的Smtp凭据不同。某些服务器将允许您使用与您的邮件地址不同的用户名

Gmail显示收到邮件的电子邮件地址。 他们这样做是为了用户不会错误地从没有真正发送邮件的人那里收到邮件。 并非所有的电子邮件客户都这样做

你不能伪造从gmail到gmail的地址。他们将始终显示他们从何处收到电子邮件

                SmtpClient smtpClient = new SmtpClient("smtp.gmail.com");
                smtpClient.Credentials = new NetworkCredential("xxxxx@gmail.com", "password");
                smtpClient.Port = 587;
                smtpClient.EnableSsl = true;

                MailMessage mail = new MailMessage();
                //mail.From = new MailAddress("xxx1@gmail.com");
                mail.To.Add("XX2@gmail.com");
                mail.Subject = "Test mail";
                mail.Body = "This is test mail, with test content";
                smtpClient.Send(mail);