REM*_*ESQ 4 smtpclient mvcmailer asp.net-mvc-3
我不相信这是一个专门的MvcMailer问题(这是我正在使用的邮件),但我正在努力构建Googleplex搜索,以找出如何根据我的上下文从不同帐户发送电子邮件.
我需要从两个不同的电子邮件帐户发送两封电子邮件.我试过用
mailMessage.From = new MailAddress("some-other-email@gmail.com");
Run Code Online (Sandbox Code Playgroud)
在MvcMailer中,但这甚至没有显示在我转储到临时目录的电子邮件中.它显示为web.config中的内容:"some-email@gmail.com".
这是我对MvcMailer的web.config:
<mailSettings>
<!-- Method#1: Configure smtp server credentials -->
<!--<smtp from="some-email@gmail.com">
<network enableSsl="true" host="smtp.gmail.com" port="587" userName="some-email@gmail.com" password="valid-password" />
</smtp>-->
<!-- Method#2: Dump emails to a local directory -->
<smtp from="some-email@gmail.com" deliveryMethod="SpecifiedPickupDirectory">
<network host="localhost" />
<specifiedPickupDirectory pickupDirectoryLocation="c:\temp\" />
</smtp>
</mailSettings>
Run Code Online (Sandbox Code Playgroud)
这是邮件代码:
public virtual MailMessage EMailConsultation(EMailConsultationData model)
{
var mailMessage = new MailMessage { Subject = "INQUIRY: E-Mail Consultation" };
mailMessage.From = new MailAddress("some-other-email@gmail.com");//I tested this to see if at the very least it would show up in the e-mail, but it didn't.
mailMessage.To.Add(model.EMail);
ViewData = new ViewDataDictionary(model);
PopulateBody(mailMessage, viewName: "InquiryEMailConsultation");
return mailMessage;
}
Run Code Online (Sandbox Code Playgroud)
同样,上面的代码可以发送电子邮件.我只是不知道如何设置邮件程序从指定的电子邮件地址发送,而不是像web.config中的"some-email@gmail.com"那样.我有多个MailMessages,需要从不同的电子邮件帐户发送某些邮件.
我非常感谢任何帮助/代码示例.
您可以在代码中创建自己的SmtpClient对象,并使用该对象发送生成的电子邮件.并且只在web.config中使用1个smtp设置(默认设置).
在您的web.config中为MvcMailer:
<mailSettings>
<smtp from="some-email@gmail.com" deliveryMethod="SpecifiedPickupDirectory">
<network host="localhost" />
<specifiedPickupDirectory pickupDirectoryLocation="c:\temp\" />
</smtp>
</mailSettings>
Run Code Online (Sandbox Code Playgroud)
并使用 MyMailer.EMailConsultation().Send();
如果您需要通过谷歌发送电子邮件(例如)使用此:
using (var googleSmtp = new SmtpClient("smtp.gmail.com", 587))
{
googleSmtp.EnableSsl = true;
googleSmtp.Credentials = new NetworkCredential("some-email@gmail.com", "valid-password");
googleSmtp.Send(MyMailer.EMailConsultation());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2226 次 |
| 最近记录: |