为什么PHPMailer可以覆盖.Net的“ setFrom”但不能覆盖System.Net.Mail?

时间:2019-03-14 09:10:19

标签: c# email smtp phpmailer smtpclient

当我将PHPMailer与gmail一起使用来发送邮件时,可以根据需要指定“ setFrom”。 假设$mail->setFrom('blabla@anywhat.com', 'blabla name')

因此,当我收到邮件时,看到发件人是blabla@anywhat.com

但是当我使用同一Gmail帐户使用.Net的System.Net.Mail时,我收到了由Google帐户发送的邮件。 这是我的C#源代码:

using System.Net.Mail;

try
{

    // code removed as not relevent

    objSmtpClient = new SmtpClient("smtp.gmail.com", 587); /// Server IP
    objSMTPUserInfo = new System.Net.NetworkCredential("somegoogleaccount@gmail.com", "password");
    objSmtpClient.EnableSsl = true;
    objSmtpClient.Credentials = objSMTPUserInfo;    
    objMailMessage.From = new MailAddress('blabla@anywhat.com', 'blabla name');

    objSmtpClient.Send(objMailMessage);
}
catch (Exception ex)
{
    throw ex;
}

所以我的问题是,“为什么PHPMailer可以实现此目标,而System.Net.Mail却不能?”

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以要求PHPMailer这样做,因为这样做是完全有效的,但这并不意味着结果消息将被接受。 Gmail不允许您使用任意发件人地址。这样做通常不是一个好主意,因为它会使您的邮件无法通过SPF和DMARC检查,因此请不要这样做。