在没有 SMTP 服务器的情况下使用 C# 发送电子邮件? [复制]

2023-12-20

我正在制作一个简单的网站。它托管在我的 VPS 上,我运行 IIS 7 并且具有完全访问权限。 DNS 已设置并配置,但未配置邮件服务器或任何内容。

我希望用户能够通过非常简单的表单发送反馈。

然而,我没有 SMTP 服务器(据我所知)。

string from = "";
    string to = "[email protected] /cdn-cgi/l/email-protection";
    string subject = "Hi!";
    string body = "How are you?";
    SmtpMail.SmtpServer = "mail.example.com";
    SmtpMail.Send(from, to, subject, body);

我想将邮件发送到免费电子邮件帐户,但我不知道如何发送,因为我没有 SMTP 服务器。

我还有其他方法可以做到吗?或者一些替代方案(例如使用免费的 smpt 或其他东西)

Thanks


不建议直接从您的代码向接收邮件服务器发送电子邮件,就接收邮件服务器而言,这就像运行您自己的邮件服务器一样。正确运行邮件服务器需要做很多工作才能确保可靠地发送电子邮件。举个例子,其中一件事(非常重要)就是拥有正确的反向 DNS 记录 https://www.misk.com/kb/reverse-dns(披露:我工作的公司的文档链接)。

相反,你应该转发您的电子邮件通过真实的电子邮件服务器。您可以使用您已有的任何电子邮件地址的 SMTP 服务器,包括 gmail。

Use SMTPClient http://msdn.microsoft.com/en-us/library/System.Net.Mail.SmtpClient.aspx with SMTP Authentication http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx and SSL http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl.aspx(如果支持的话)。

代码示例:

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

string fromEmail = "[email protected] /cdn-cgi/l/email-protection";
MailMessage mailMessage = new MailMessage(fromEmail, "[email protected] /cdn-cgi/l/email-protection", "Subject", "Body");
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(fromEmail, "password");
try {
    smtpClient.Send(mailMessage);
}
catch (Exception ex) {
    //Error
    //Console.WriteLine(ex.Message);
    Response.Write(ex.Message);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有 SMTP 服务器的情况下使用 C# 发送电子邮件? [复制] 的相关文章

随机推荐