使用asp.net中的smtp端口465向gmail帐户发送邮件时超时错误

时间:2015-03-16 07:33:12

标签: c# asp.net email

public void SendEmailWithAttachment(string pFrom, string pTo, string pSubject, string pBody, string pServer, string strAttachmentPDFFileNames)
{
    try
    {
        System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();


        string UserName = ConfigurationManager.AppSettings["SMTPUserName"];
        string Password = ConfigurationManager.AppSettings["SMTPPassword"];

        if (pTo.Contains(","))
        {
            string[] ToAdd = pTo.Split(new Char[] { ',' });
            for (int i = 0; i < ToAdd.Length; i++)
            {
                Message.To.Add(ToAdd[i]);
            }
        }
        else
        {
            Message.To.Add(pTo);
        }

        //System.Net.Mail.MailAddress toAddress = new System.Net.Mail.MailAddress(pTo);   
        //Message.To.Add(toAddress);
        System.Net.Mail.MailAddress fromAddress = new System.Net.Mail.MailAddress(pFrom);
        Message.From = fromAddress;
        Message.Subject = pSubject;
        Message.Body = pBody;
        Message.IsBodyHtml = true;

        // Stream streamPDFImages = new MemoryStream(bytPDFImageFile);
        //System.Net.Mail.SmtpClient
        var smtpClient = new System.Net.Mail.SmtpClient();
        {
            Message.Attachments.Add(new System.Net.Mail.Attachment(strAttachmentPDFFileNames));

            smtpClient.EnableSsl = true;
            smtpClient.Host = pServer;
            smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            smtpClient.Credentials = new System.Net.NetworkCredential(UserName, Password);
            smtpClient.Port = 465;
            smtpClient.Send(Message);
        }
    }
    catch (Exception Exc)
    {
        Exception ex = new Exception("Unable to send email . Please Contact administrator", Exc);
        throw ex;
    }

}

1 个答案:

答案 0 :(得分:0)

        SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new NetworkCredential("yourMail", "yourPassword");
        smtp.EnableSsl = true;

        MailMessage msg = new MailMessage(sendFrom, "yourMail");

        msg.ReplyToList.Add(sendFrom);
        msg.Subject = subject;
        msg.Body = bodyTxt;
        System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(@"C:\Projects\EverydayProject\test.txt");
        msg.Attachments.Add(attachment);

        smtp.Send(msg);

以下是向gmail smtp发送电子邮件的工作代码。从我看到你没有设置UseDefaultCredentials = false,你使用了错误的端口。 你也不能覆盖这样的异常。,抛出初始异常。此外,您还需要关闭Gmail帐户中的安全设置。你可以谷歌。