gpt4 book ai didi

c# - 不用gmail发送邮件

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:20 25 4
gpt4 key购买 nike

似乎很多解决方案都涉及使用服务器:smtp.gmail.com 和 System.Net.Mail.SmtpClient

其他人建议使用 System.Web.Mail(许多人表示已弃用): here for example.

无论如何,当我尝试时,我无法使上述任何一个示例正常工作。我不认为这是一个防火墙问题。我可以使用 outlook express 通过 gmail 发送电子邮件。我得到的 C# 错误是目标机器主动拒绝连接。

我应该尝试从代码中使用 outlook 吗?最好的方法是通过 AutoIt 还是通过某些 dll/com?为什么首先需要服务器?在 C# 中,我可以从网上下载东西,为什么我不能直接从 C# 发送特定格式的网络包(电子邮件),而不必使用某种服务器?

最佳答案

您需要 smtp 中继或网关。我用 http://sendgrid.com/从云端发送电子邮件,他们有一个免费选项。

还有关于如何发送电子邮件的示例代码,我重构了他们的代码以便我可以从其他地方调用它。

public partial class Email
{
/// <summary>
/// Generic Email method used to send email through SendGrid
/// </summary>
/// <param name="ToAddressName">ToAddress, DisplayName</param>
/// <param name="FromAddress">Email address of sender</param>
/// <param name="FromName">Display Name of sender</param>
/// <param name="SendCopy">Send BCC to FromAddress</param>
public void SendEmail(Dictionary<string, string> toAddressName,
String fromAddress, String fromName,
String subject, String message,
bool sendCopy)
{
try
{
MailMessage mailMsg = new MailMessage();

// To
foreach (KeyValuePair<string, string> kvp in toAddressName)
{
string toAddress = kvp.Key;
string displayName = kvp.Value;
mailMsg.To.Add(new MailAddress(toAddress, displayName));
}

// From
mailMsg.From = new MailAddress(fromAddress, fromName);

if (sendCopy)
{
mailMsg.Bcc.Add(new MailAddress(fromAddress, fromName));
}

// Subject and multipart/alternative Body
mailMsg.Subject = subject;

string html = message;
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html));

// Init SmtpClient and send
SmtpClient smtpClient = new SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587));

System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("sendgridusername", "sendgridpassword");
smtpClient.Credentials = credentials;

smtpClient.Send(mailMsg);
}
catch (Exception ex)
{
Error error = new Error();
error.ReportError(ex);
}
}

(ps,如果您对我的代码有任何意见,我很乐意听到,谢谢)

关于c# - 不用gmail发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6742326/

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