这两天因公司网站邮件发不出去,然后研究了在asp网站发送邮件和在asp.net网站发送邮件的代码,把碰到的问题这里记录一下。
1、先说在asp.net中发送邮件吧,
刚开始只有126邮箱可以发出邮件,然后其他163、新浪等发不出去,后来郁闷了很久才知道邮箱的smtp和pop3服务默认是不开通的,需要去手动开通才可以发送邮件。比如说新浪邮箱开通smtp服务截图如下:
其他邮箱也类似,然后才能实现发送邮件的功能,发送邮件代码如下:
/// <summary> /// C#发送邮件 /// </summary> public void ShowSendEmail() { string fromEmail = "[email protected]"; //发件人邮箱地址 string emailSMTPHost = "smtp.126.com"; //邮箱SMTP服务器,用来发送邮件 string emailSubject = "Email Subject"; //邮件主题 string emailBody = "<h1>Email Content</h1><h3>哈哈哈,发送邮件OK了!!!^_^</h3>"; //邮件内容 string toEmail = "[email protected]"; //要发送对象的邮箱地址 string emailName = fromEmail; //登陆邮箱的用户名,可以和发件人邮箱地址一样 string emailPwd = "********"; //登陆邮箱的密码 try { using (MailMessage msg = new MailMessage(fromEmail, toEmail, emailSubject, emailBody)) { msg.IsBodyHtml = true; //设置邮件内容是否支持html格式 msg.To.Add("[email protected]"); //追加多个收件人邮箱,实现群发 msg.Priority = MailPriority.High; //发送邮件的优先等级 SmtpClient mailClient = new SmtpClient(emailSMTPHost); mailClient.UseDefaultCredentials = false; //设置是否随请求一起发送 mailClient.Credentials = new System.Net.NetworkCredential(emailName, emailPwd); //是否使用安全套接字层 (SSL) 加密连接. SmtpClient 使用 SSL,则为 true;否则为 false。默认值为 false。 mailClient.EnableSsl = true; mailClient.Send(msg); //调用发送邮件方法 } } catch (Exception ex) { //发送失败:ex.Message; return; } //发送成功 }
2、然后使用asp来发送邮件,现经测试有两种方式可以发送邮件成功
第一种方式代码如下:
<%‘定义发送邮件方法 function showSendEmail Set objMail = Server.CreateObject("CDO.Message") Set objCDO = Server.CreateObject("CDO.Configuration") objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") =2 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "smtp.126.com" ‘邮件服务器 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ‘ 邮件服务器默认端口 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 ‘超时设置 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"‘ 发送邮件的邮箱地址 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*****" ‘邮箱密码 objCDO.Fields.Update Set objMail.Configuration = objCDO objMail.From = "[email protected]" ‘发件人,这里和上面的发送邮件地址保持一致 objMail.Subject = "Email Subject" ‘邮件标题 objMail.To = "[email protected]" ‘收件人 objMail.HtmlBody = "哈喽,测试邮件,最近可好?" ‘发送内容。 objMail.Send Set objMail = Nothing Set objCDOSYSCon = Nothing end function showSendEmail ‘调用方法,发送邮件 %>
第二种调用JMail组件来发送邮件,调用这个组件来发送邮件时,
要注意一点,必须安装JMail组件后,才能发送邮件成功(之前一直没安装,发送总是报缺少对象错误)
JMail组件下载路径有:http://download.csdn.net/detail/tandaxia/8598007
<% ‘定义发送邮件方法 Sub showJmail On Error Resume Next Dim JMail Set JMail = Server.CreateObject("JMail.Message") JMail.silent=true JMail.Logging = True JMail.Charset = "gb2312" JMail.MailServerUserName = "[email protected]" ‘邮箱登陆用户名 JMail.MailServerPassword = "*************" ‘邮箱密码 JMail.ContentType = "text/html" JMail.Priority = 1 JMail.From = "[email protected]" ‘发件人邮件地址 JMail.FromName = "xmTan" ‘发件人姓名,可以和发件人邮件地址一样 JMail.AddRecipient "[email protected]" ‘收件人邮件地址 JMail.Subject = "Email Subject" ‘邮件主题 JMail.Body = "<h1>Email Content </h1>哈喽,发送成功了 ^_^" ‘邮件内容 JMail.Send ("smtp.126.com") ‘邮箱SMTP服务器 Set JMail = Nothing SendMail = "OK" If Err Then SendMail = Err.Description Response.Write("<h1>发送结果:"&SendMail&"</h1>") End Sub showJmail ‘调用方法,发送邮件 %>
时间: 2024-11-07 17:15:24