用ASP.net发送电子邮件
本文关键字:电子邮件 net ASP | 更新日期: 2023-09-27 18:16:13
所以我一直在寻找stackoverflow通过asp网站使用gmail帐户发送电子邮件的方法…
我尝试了很多方法,包括在。net中通过Gmail发送电子邮件,这似乎是最好的,因为他得到了大量的支持。
然而遗憾的是,它仍然不适合我!我总是超时。
下面是我的代码:
var fromaddress = new MailAddress("from@gmail.com", "from");
var toaddress = new MailAddress("to@address.com", "to");
try
{
using (var smtpClient = new SmtpClient())
{
smtpClient.EnableSsl = true;
using (var message = new MailMessage(fromaddress, toaddress))
{
message.Subject = "Test";
message.Body = "Testing this shit!";
smtpClient.Send(message);
return true;
}
}
}
catch (Exception ex)
{
return false;
}
在我的网页。config I have
<system.net>
<mailSettings>
<smtp from="from@gmail.com" deliveryMethod="Network">
<network userName="from@gmail.com" password="mypassword" host="smtp.gmail.com" port="587"/>
</smtp>
</mailSettings>
</system.net>
根据我访问过的几个网站,这应该工作!!.. 但它没有。
我还做错了什么吗?
在smtpClient.Send()方法之前不要设置登录。
NetworkCredential NetCrd = new NetworkCredential(youracc, yourpass);
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = NetCrd;
加载网页。
按照本页的建议,尝试安装telnet,看看是否可以连接到邮件服务器。这可能是服务器上的防火墙问题。您也可以尝试使用链接中建议的其他端口。
你的代码看起来不错。
尝试故意输入虚假凭证。如果你得到一个不同的错误信息,你是连接到gmail,有一个问题。
如果你遇到同样的超时问题,这可能不是软件的问题,而是防火墙的问题。
longshot - update也许有一张网。配置问题?尝试像这样在代码中指定所有内容。我在现实生活中使用过Gmail,所以如果这不起作用,肯定是防火墙/连接的问题。
SmtpClient mailClient = new SmtpClient();
//This object stores the authentication values
System.Net.NetworkCredential basicCredential =
new System.Net.NetworkCredential("username@mydomain.com", "****");
mailClient.Host = "smtp.gmail.com";
mailClient.Port = 587;
mailClient.EnableSsl = true;
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = basicCredential;
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("info@mydomain.com", "Me myself and I ");
message.From = fromAddress;
//here you can set address
message.To.Add("to@you.com");
//here you can put your message details
mailClient.Send(message);
好运. .
你能试一下吗?
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
try
{
MailAddress fromAddress = new MailAddress(ConfigurationManager.AppSettings["fromAddress"], ConfigurationManager.AppSettings["displayName"]); //Default from Address from config file
MailAddress toAddress = new MailAddress("abc@gmail.com", "from sender");
// You can specify the host name or ipaddress of your server
// Default in IIS will be localhost
smtpClient.Host = ConfigurationManager.AppSettings["smtpClientHost"];
//Default port will be 25
smtpClient.Port = int.Parse(ConfigurationManager.AppSettings["portNumber"]); //From config file
//From address will be given as a MailAddress Object
message.From = fromAddress;
// To address collection of MailAddress
message.To.Add(toAddress);
message.Subject = ConfigurationManager.AppSettings["Subject"]; //Subject from config file
message.IsBodyHtml = false;
message.Body = "Hello World";
smtp.DeliveryMethod = SmtpDeliveryMethod.NetWork
smtpClient.Send(message);
}
catch (Exception ex)
{
throw ex.ToString();
}
配置设置为:
<configuration>
<appSettings>
<add key="smtpClientHost" value="mail.localhost.com"/> //SMTP Client host name
<add key="portNumber" value="25"/>
<add key="fromAddress" value="defaultSender@gmail.com"/>
<add key="displayName" value="Auto mail"/>
<add key="Subject" value="Auto mail Test"/>
</appSettings>
</configuration>
将这些设置EnableSSL = true
和defaultCredentials="false"
放在您的web中。配置设置。Gmail smtp服务器需要SSL设置为真,mailclient.UseDefaultCredentials = false
应该是假的,如果你提供你的凭据。
更新网页。配置设置:
<mailSettings>
<smtp from="from@gmail.com" deliveryMethod="Network">
<network userName="from@gmail.com" password="mypassword" host="smtp.gmail.com" defaultCredentials="false" port="587" enableSsl="true"/>
</smtp>
</mailSettings>
并在web.config中提供设置后检查此短代码以发送邮件。即使它发送电子邮件快得多,而不是在邮件发送函数中创建smtpclient设置时指定设置。
Public void SendEmail(string toEmailAddress, string mailBody)
{
try
{
MailMessage mailMessage = new System.Net.Mail.MailMessage();
mailMessage.To.Add(toEmailAddress);
mailMessage.Subject = "Mail Subjectxxxx";
mailMessage.Body = mailBody;
var smtpClient = new SmtpClient();
smtpClient.Send(mailMessage);
return "Mail send successfully";
}
catch (SmtpException ex)
{
return "Mail send failed:" + ex.Message;
}
在我身边工作很好…
var smtpClient = new SmtpClient(gmailSmtpServer, gmailSmtpPort)
{
Credentials = new NetworkCredential(FromGEmailAddress, FromGEmailAddressPassword),
EnableSsl = true
};
try
{
using (var message = new MailMessage(fromaddress, toaddress))
{
message.Subject = "Test";
message.Body = "Testing this shit!";
smtpClient.Send(message);
return true;
}
}
catch (Exception exc)
{
// error
return false;
}