我正在开发一个Asp.net应用程序。我有一个电子邮件提醒表单,其中我的客户的电子邮件ID&复选框已提供。管理员将选中复选框&按发送提醒按钮&邮件将被发送到所有已选中的复选框,即发送给我的客户。但在此表单中,我有一个文本框说发件人,其中管理员将放置发件人电子邮件ID&从该电子邮件ID,所有电子邮件将发送给我的客户。
如何在没有密码的情况下发送邮件,因为管理员可以根据他的要求使用我们公司电子邮件ID中的任何电子邮件ID。我怎样才能实现这个目标
这是我的代码
SmtpClient smtpClient = new SmtpClient
{
Host = "smtp.office365.com",
Port = 25,
UseDefaultCredentials = true,
EnableSsl = true,
Credentials = new NetworkCredential("Adminsupport@abc.com", "123456")
};
var mailMessage = new MailMessage();
mailMessage.Subject = subject;
mailMessage.From = new MailAddress("Adminsupport@abc.com");
mailMessage.IsBodyHtml = true;
mailMessage.Body = body;
//"Email from : <a href='mailto:" + from + "' target='_blank'>" + from + "</a><br/>For Form Name : ";
mailMessage.To.Add(new MailAddress(tomail));
smtpClient.Send(mailMessage);
mailMessage.Dispose();
smtpClient.Dispose();
答案 0 :(得分:1)
创建新用户的唯一目的是从您的Web应用程序发送邮件,并在您的应用程序中配置其凭据。
然后配置该用户,以便它可以代表您要让电子邮件来自的用户或组发送。
您可以使用SMTP客户端提交或SMTP中继,请参阅How to set up a multifunction device or application to send email using Office 365。
答案 1 :(得分:0)
好吧,听起来你想要两件事之一。
您要么欺骗电子邮件地址,在这种情况下,您实际上会更改“发件人”标题字段。这将向收件人显示您想要的电子邮件地址和名称。
mail.From = new MailAddress("me@mycompany.com", "Steve James" );
另一个可能的答案是,您希望实际从您自己的登录凭据发送电子邮件,但是要从具有交换权限的帐户发送该电子邮件。 (这是MS Outlook / Exchange特定答案) - 您需要通过MS Outlook互操作API发送
// Retrieve the account that has the specific SMTP address.
Outlook.Account account = GetAccountForEmailAddress(oApp , "support@mydomain.com");
// Use this account to send the e-mail.
oMsg.SendUsingAccount = account;
这样可以确保只有具有相应权限才能发送“来自”地址的人才能这样做 - 因为它会将身份验证级别检查卸载到MS Outlook。