gpt4 book ai didi

asp.net-mvc-3 - 在 appsettings web.config 中设置电子邮件设置

转载 作者:行者123 更新时间:2023-12-02 11:07:18 25 4
gpt4 key购买 nike

在 web.config 中设置电子邮件详细信息 - 但没有发送电子邮件!

  <appSettings>
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.live.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="MyEmail@live.co.uk" />
<add key="smtpPass" value="mypasswordgoeshere" />
<add key="adminEmail" value="no-reply@no-reply.com" />
</appSettings>

我正在使用以下类(class)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;
using System.Net;
using System.Configuration;

namespace MVCcars.Utils
{
public static class MailClient
{
private static readonly SmtpClient Client;
static MailClient()
{
Client = new SmtpClient
{
Host =
ConfigurationManager.AppSettings["SmtpServer"],
Port =
Convert.ToInt32(
ConfigurationManager.AppSettings["SmtpPort"]),
DeliveryMethod = SmtpDeliveryMethod.Network

};
Client.UseDefaultCredentials = false;
Client.Credentials = new NetworkCredential(
ConfigurationManager.AppSettings["SmtpUser"],
ConfigurationManager.AppSettings["SmtpPass"]);
}


private static bool SendMessage(string from, string to,
string subject, string body)
{
MailMessage mm = null;
bool isSent = false;
try
{
// Create our message
mm = new MailMessage(from, to, subject, body);
mm.DeliveryNotificationOptions =
DeliveryNotificationOptions.OnFailure;
// Send it
Client.Send(mm);
isSent = true;
}
// Catch any errors, these should be logged and
// dealt with later
catch (Exception ex)
{
// If you wish to log email errors,
// add it here...
var exMsg = ex.Message;
}
finally
{
mm.Dispose();
}
return isSent;
}


public static bool SendWelcome(string email)
{
string body = "Put welcome email content here...";
return SendMessage(
ConfigurationManager.AppSettings["adminEmail"],
email, "Welcome message", body);
}
}
}

这是帐户 Controller :

[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName,
model.Password, model.Email, null, null,
true, null, out createStatus);
if (createStatus ==
MembershipCreateStatus.Success)
{
// Send welcome email
MailClient.SendWelcome(model.Email);
FormsAuthentication.SetAuthCookie(
model.UserName,
false /* createPersistentCookie */);
return RedirectToAction("create", "Customer");
}
else
{
ModelState.AddModelError("",
ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed,
// redisplay form
return View(model);
}

web.config 中的应用程序设置是否适合启用Ssl?欢迎任何建议

最佳答案

在 .NET 中使用 SmtpClient 的更简单方法是使用 system.net 配置设置。这将允许您为创建的任何 SmtpClient 设置默认值,而无需编写代码来设置所有属性。这样您就可以轻松修改整个设置,而无需更改任何代码。

  <system.net>
<mailSettings>
<smtp from="no-reply@no-reply.com">
<network host="smtp.live.com" password="mypasswordgoeshere" port="587" userName="MyEmail@live.co.uk" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>

然后在代码中

 System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Send(mailMessage);

编辑这是我在下面发布的原始代码:

static MailClient() 
{
Client = new SmtpClient
{
Host = ConfigurationManager.AppSettings["SmtpServer"],
Port = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPort"]),
DeliveryMethod = SmtpDeliveryMethod.Network,
EnableSsl = bool.Parse(ConfigurationManager.AppSettings["EnableSsl"])

};
.....
}

关于asp.net-mvc-3 - 在 appsettings web.config 中设置电子邮件设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com