【问题标题】:How to send email from SQL Server to gmail [duplicate]如何将电子邮件从 SQL Server 发送到 gmail [重复]
【发布时间】:2020-09-02 12:00:50
【问题描述】:

我是 SQL 和 ASP.NET 的初学者,基本上我正在创建一个网站,其中有一个联系我们页面。其中有四个文本框(姓名、电子邮件地址、主题和您的消息)。无论我在文本框中输入什么,它都会以 SQL 形式存储在表的数据库中。那么现在如何将数据(存在于表中)发送到 gmail 帐户。

【问题讨论】:

  • 向 Gmail 发送电子邮件与向任何其他邮件提供商发送电子邮件没有什么不同;使用sp_send_dbmail。将电子邮件发送到何处(gmail、Outlook、Yahoo、托管 STMP 服务器的公司)并不重要。 SQL Server 将简单地连接到您配置的电子邮件帐户,然后该邮件服务器完成其余工作。

标签: c# asp.net sql-server


【解决方案1】:

先决条件:SMTP 服务器(Gmail、exchange 等)

选项

  • 从 c# 发送邮件
  • 在数据库中发送邮件(不推荐,因为 SQL Server 的许可费用很高)

如何从 c# 中做到这一点:

using(var smtpClient = new SmtpClient("smtp.gmail.com", 587)
{
    EnableSsl = true,
})
{
    var credentials = new NetworkCredential("your-sender-account@gmail.com", "your-sender-passworder"); // Don't store you password in clear text
    var smtpClient.Credentials = credentials;

    var to = new MailAddress("to-email@gmail.com");
    var from = new MailAddress("from-email@gmail.com");
    var mailMessage = new MailMessage(from, to)
    {
        Subject = "Your subject",
        Body = "Your content"
    };

    smtpClient.Send(mailMessage);
}

如果您使用 gmail 作为 smtp 服务器,则需要在您的 gmail 设置中使用NetworkCredintial 中使用的帐户的allow less secure apps

文档SmtpClient

【讨论】:

  • 如果我使用这个 c# 代码,例如我在 "NetworkCredential("xyz@gmail.com,"pass"), var to=(xyz@gmail.com), var from=(abc @gmail.com)”。没有任何问题,我收到了一封电子邮件,但如果我展开详细信息,它会显示“来自:xyz@gmail.com 到:xyz@gmail.com”。虽然我输入 abc @gmail.com 在“var from”中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多