我正在使用using System.Net.Mail;
以及以下代码发送邮件
MailMessage message = new MailMessage();
SmtpClient client = new SmtpClient();
// Set the sender's address
message.From = new MailAddress("fromAddress");
// Allow multiple "To" addresses to be separated by a semi-colon
if (toAddress.Trim().Length > 0)
{
foreach (string addr in toAddress.Split(';'))
{
message.To.Add(new MailAddress(addr));
}
}
// Allow multiple "Cc" addresses to be separated by a semi-colon
if (ccAddress.Trim().Length > 0)
{
foreach (string addr in ccAddress.Split(';'))
{
message.CC.Add(new MailAddress(addr));
}
}
// Set the subject and message body text
message.Subject = subject;
message.Body = messageBody;
// Set the SMTP server to be used to send the message
client.Host = "YourMailServer";
// Send the e-mail message
client.Send(message);
主持人我正在提供client.Host = "localhost";
因此错误
无法建立连接,因为目标计算机是主动的 拒绝了 some_ip_address_here
当我使用client.Host = "smtp.gmail.com";
我收到以下错误
连接尝试失败,因为连接方没有 在一段时间后正确回应,或建立连接 失败,因为连接的主机无法响应
我无法通过localhost发送邮件。 请帮助我,我是c#的新手请在我错的代码中纠正我..?
答案 0 :(得分:5)
以下是一些适用于通过gmail发送邮件的代码(来自stackoverflow的代码)。它类似于此处的代码:Gmail: How to send an email programmatically):
using (var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("yourmail@gmail.com", "yourpassword"),
EnableSsl = true
})
{
client.Send("frommail@gmail.com", "tomail@gmail.com", "subject", message);
}
答案 1 :(得分:2)
要从client.Host = "localhost"
发送邮件,您需要设置本地SMTP服务器。
要通过Google(或通过任何其他SMTP服务器,包括您自己的本地SMTP)发送邮件,您必须设置用户名,密码,ssl设置 - 所有这些都是所选SMTP服务器的要求,您需要阅读他们的帮助。
例如,您需要SSL的Google says,端口465或587,服务器smtp.gmail.com
以及您的用户名和密码。
您可以在.config文件中分配所有这些值。
<system.net>
<mailSettings>
<smtp>
<network host="smtp.gmail.com" enableSsl="true" port="587" userName="yourname@gmail.com" password="password" />
</smtp>
</mailSettings>
</system.net>
或者在每次使用之前在代码中设置为SmtpClient:
client.Host = "smtp.gmail.com";
client.Port = 587;
client.EnableSSL = true;
client.Credentials = new NetworkCredential("yourname@gmail.com", "password");
答案 2 :(得分:1)
将此代码放在web.config文件中的<configuration> </configuration>
<system.net>
<mailSettings>
<smtp>
<network host="smtp.gmail.com" enableSsl="true" port="587" userName="youremail@gmail.com" password="yourpassword" />
</smtp>
</mailSettings>
</system.net>
然后是后端代码
MailMessage message = new MailMessage();
message.IsBodyHtml = true;
message.From = new MailAddress("email@gmail.com");
message.To.Add(new MailAddress(TextBoxEadd.Text));
message.CC.Add(new MailAddress("email@gmail.com"));
message.Subject = "New User Registration ! ";
message.Body = "HELLO";
sr.Close();
SmtpClient client = new SmtpClient();
client.Send(message);
我希望这段代码可以帮到你! :)
答案 3 :(得分:0)
使用此Line..Dont Use Port And HostName
LocalClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
答案 4 :(得分:0)
我只是想补充一点,Gmail现在需要使用“应用密码”才能在其他应用程序中使用它。选中此link。我必须找到困难的方法。创建应用密码后,我更改了NetworkCredentials以使用它发送电子邮件。