C# 电子邮件支持部分,用户地址为;“从地址”;

C# 电子邮件支持部分,用户地址为;“从地址”;,c#,asp.net,wpf,email,smtp,C#,Asp.net,Wpf,Email,Smtp,我需要在我们的应用程序中实现一个“电子邮件支持”部分。因此,电子邮件“收件人”地址将是admin@mydomain.com“和发件人地址将是最终用户的电子邮件地址。(最终用户的电子邮件地址可能位于同一个域或其他类似域。)user@mydomain.com或user@gmail.com) 在应用程序中,我使用管理员帐户详细信息(用户名和密码)对电子邮件进行身份验证 此外,我使用的主机地址为“mail.mydomain.com” 问题是我遇到以下错误: “邮箱不可用。服务器响应为:发件人地址必须为”

我需要在我们的应用程序中实现一个“电子邮件支持”部分。因此,电子邮件“收件人”地址将是admin@mydomain.com“和发件人地址将是最终用户的电子邮件地址。(最终用户的电子邮件地址可能位于同一个域或其他类似域。)user@mydomain.com或user@gmail.com)

在应用程序中,我使用管理员帐户详细信息(用户名和密码)对电子邮件进行身份验证

此外,我使用的主机地址为“mail.mydomain.com” 问题是我遇到以下错误:

“邮箱不可用。服务器响应为:发件人地址必须为” “匹配已验证的地址”错误消息

是否可以使用正确的发件人电子邮件地址(地址中的用户)发送电子邮件

我的代码示例是

message.To.Add(“admin@mydomain.com”);
message.From = new MailAddress(“test@gmail.com”);
message.IsBodyHtml = true;
message.BodyEncoding = Encoding.UTF8;
var smtp = new SmtpClient("mail.mydomain.com");
smtp.Credentials = new System.Net.NetworkCredential(admin@mydomain.com, adminpassword);
smtp.EnableSsl = false;
object usrtkn = message;
smtp.Send(message);

您无法执行正在执行的操作,因为SMTP服务器不允许您“模拟”用户的电子邮件地址以发送到系统。谢天谢地,情况就是这样,否则人们会以别人的名义向所有人发送垃圾邮件/欺骗


为什么您试图让用户看起来正在向应用程序发送电子邮件?为什么不在应用程序中设置一个支持部分,用户可以在其中向系统“提交”支持请求,然后如果您想向用户发送电子邮件,那么您的方案将起作用,但正好相反(系统是
From
地址,用户是
to
地址).

一般来说,发件人地址不应该是用户自己,而应该是内部系统地址。这主要是因为用户实际上没有发送电子邮件,而应用程序是。在电子邮件中,您可以指定是哪个用户发送的(以及他们的电子邮件地址)。您甚至可以在邮件中指定用户的电子邮件地址


但是从SMTP服务器收到的消息几乎说明了这一切。如果邮件是“来自”该用户的,则SMTP服务器会拒绝该邮件,因为它对电子邮件的身份验证和来源非常敏感。对于SMTP服务器(对于我想象中的任何SMTP服务器),您似乎在试图欺骗邮件。

很高兴看到您对
用户
系统
在此场景中应扮演的角色有相同的解释。:-)@卡兰德森:同意。我经常看到人们试图从审计跟踪中删除软件,让它看起来像是用户在直接做任何事情,但事实并非如此。()应用程序本身就是后端服务的用户,因此应将其视为后端服务的用户。
message.To.Add(“admin@mydomain.com”);
message.From = new MailAddress(“test@gmail.com”);
message.IsBodyHtml = true;
message.BodyEncoding = Encoding.UTF8;
var smtp = new SmtpClient("mail.mydomain.com");
smtp.Credentials = new System.Net.NetworkCredential(admin@mydomain.com, adminpassword);
smtp.EnableSsl = false;
object usrtkn = message;
smtp.Send(message);