如何在没有SMTP端口、主机和启用SSL的情况下发送电子邮件
本文关键字:SSL 启用 情况下 电子邮件 主机 SMTP 端口 | 更新日期: 2023-09-27 18:00:32
我有以下代码,如果我发送邮件,其显示的电子邮件结尾失败,如何解决这个问题?
public void Sendemail(string toaddr)
{
if (Editor1.Content == null)
{
ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Subject or Body of Email Should not be Empty...!');", true);
}
else
{
string[] arryaddr = toaddr.Split(',');
MailMessage ms = new MailMessage();
ms.IsBodyHtml = true;
//ms.To.Add(new MailAddress("admin@digitalprintonline.co.uk"));
ms.To.Add(new MailAddress(toaddr));
string fromaddr = "admin@digitalprintonline.co.uk";
for (int i = 0; i < arryaddr.Length; i++)
{
ms.Bcc.Add(new MailAddress(arryaddr[i].ToString()));
}
ms.From = new MailAddress(fromaddr);
string subject = txtSubject.Text;
ms.Subject = subject;
string body = Editor1.Content;
ms.Body = body;
ms.Priority = MailPriority.Normal;
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new System.Net.NetworkCredential("admin@digitalprintonline.co.uk", "dpo123");
try
{
smtp.Send(ms);
ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Email Sent Successfully...!');", true);
}
catch (Exception ex)
{
}
}
}
我有以下电子邮件设置
smtp from="admin@dpoweddings.co.uk"
network host="217.199.175.121"
port="25"
userName="admin@digitalprintonline.co.uk"
password="*****"
enableSsl="false"
SMTPClient
使用SMTP(协议)发送电子邮件。因此,它需要有关SMTP服务器的详细信息。考虑下面的代码
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("username@gmail.com", "password");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
在上面的代码中,我们向SMTP客户端提供了以下信息,以使正常工作
- 主机:smtp服务器详细信息。如您所见,默认情况下您使用@gmail.com,但此处指定为smtp.gmail.com
- 端口:连接到smtp服务器的端口
- EnableSsl:如果需要ssl连接
- 凭据:应使用其凭据发送邮件的帐户
您的代码缺少主机和端口(这也是凭据所必需的,默认情况下EnableSsl为false)
要了解digitalprintonline.co.uk上SMTP服务器的详细信息(主机、端口、Ssl要求),您必须联系那里的管理员。或者,您可以使用GMail SMTP服务器详细信息以及您的GMail帐户凭据。
您不需要在本地机器上安装服务器就可以向SmtpClient
发送消息。您的电子邮件服务提供商(如smtp.gmail.com
)拥有服务器,您的SmtpClient
与该服务器通信。