我不再依赖我的主人发送邮箱,而是考虑使用我的Gmail帐户发送邮箱.这些邮箱是发给我在节目中演奏的乐队的个性化邮箱.

有可能做这件事吗?

推荐答案

确保使用System.Net.Mail,而不是不推荐使用的System.Web.Mail.用System.Web.Mail做SSL是一堆乱七八糟的扩展.

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

此外,请转到Google Account > Security页并查看Signing in to Google > 2-Step Verification设置.

  • 如果它已启用,则您必须生成一个密码,以允许.NET绕过两步验证.为此,单击Signing in to Google > App passwords, Select app=Mail和device=Windows computer,最后生成密码.使用fromPassword常量中生成的密码,而不是标准的Gmail密码.
  • 如果禁用,则必须打开Less secure app access,这是不推荐的!因此,最好启用两步验证.

.net相关问答推荐

使用PowerShell在Windows容器内安装exe

使用托管身份而不是检测密钥配置Application Insights

Azure管道-使用.NET 8 RC2 SDK生成C#项目失败

仅使用 .NET GetBytes 方法转换有效字节而不创建问号

.NET 4.5 项目未在 Visual Studio 2022 中编译

将 Span 传递到函数时出现 F# 错误

双精度的 C++ 和 C# 十六进制值之间的差异

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

在 Moq Callback() 调用中设置变量值

多个等待与 Task.WaitAll - 等效?

如何创建只读依赖属性?

ASP.NET Core 等效于 ASP.NET MVC 5 的 HttpException

在安全处理异常时避免首次机会异常消息

将属性序列化为元素中的 Xml 属性

.NET 的 String.Normalize 有什么作用?

ILookup 接口与 IDictionary

等效于 C# 在 powershell 中的使用关键字?

判断 .NET 中的目录和文件写入权限

更改 SqlConnection 超时

如何在 Dapper.Net 中编写一对多查询?