- 在ASP.NET MVC项目中添加System.Net和System.Net.Mail的命名空间。
- 在Startup文件中添加以下代码,以更改发送者电子邮件:
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddTransient();
services.Configure(Configuration);
//...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//...
var emailSender = app.ApplicationServices.GetService();
EmailSender.SetEmailSenderSettings(Configuration.GetSection("EmailSenderSettings").Get());
//...
}
- 为IEmailSender接口创建一个EmailSender类并在其中实现SendEmailAsync方法。您可以在该类中使用SmtpClient类来更改发送者来源:
public class EmailSender : IEmailSender
{
private readonly EmailSenderSettings _emailSenderSettings;
public EmailSender(IOptions emailSenderSettings)
{
_emailSenderSettings = emailSenderSettings.Value;
}
public async Task SendEmailAsync(string email, string subject, string message)
{
using (var client = new SmtpClient())
{
client.Host = _emailSenderSettings.Host;
client.Port = _emailSenderSettings.Port;
client.EnableSsl = _emailSenderSettings.EnableSsl;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(_emailSenderSettings.Username, _emailSenderSettings.Password);
using (var emailMessage = new MailMessage())
{
emailMessage.From = new MailAddress(_emailSenderSettings.SenderEmail, "新的发送者名称");
emailMessage.To.Add(email);
emailMessage.Subject = subject;
emailMessage.Body = message;
emailMessage.IsBodyHtml = true;
await client.SendMailAsync(emailMessage);
}
}
}
}
- 在appsettings.json文件中添加以下内容,以指定您的SMTP服务器设置:
{
"EmailSenderSettings": {
"Host": "smtp.example.com",
"Port": 587,
"EnableSsl": true,
"Username": "yourusername",
"