首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于SMTP发送邮件出现的有关问题(asp.net)

2012-01-20 
关于SMTP发送邮件出现的问题(asp.net)问:1.首先,你们知道邮件服务器在哪里设置smtp吗?2.网上的2种方法我都

关于SMTP发送邮件出现的问题(asp.net)
问:
1.首先,你们知道邮件服务器在哪里设置smtp吗?
2.网上的2种方法我都设置了,能用163的邮箱发(163.com),但是其他的都不行(QQ,126等),为什么呀?程序如下:
方法1:
        //发送邮件
        public   int   SendMail(string   strComment,   string   strSubject,   string   strEmailTo)   //strComment   为邮件内容,strSubject   主题,strEmailTo为   收件人的地址
        {
                int   li_Return   =   0;
                string   ls_ErrText   =   " ";
                try
                {
                        DataAccess.Emails   emailObj   =   new   DataAccess.Emails();
                        DataTable   dtNew   =   new   DataTable();
                        li_Return   =   emailObj.GetEmails(dtNew,   ref   ls_ErrText);
                        if   (li_Return   <=   0)
                        {
                                ClientScript.RegisterStartupScript( " ".GetType(),   "KeyError ",   " <script   language= 'javascript '> alert( '获取邮件地址失败! ');parent.f_Submit(); </script> ");
                        }

                        MailMessage   objMailMessage   =   new   MailMessage();
                        objMailMessage.From   =   new   MailAddress(dtNew.Rows[0][ "EMail "].ToString());   //邮箱地址   support@biz369.com
                        objMailMessage.Subject   =   strSubject;
                        objMailMessage.SubjectEncoding   =   System.Text.Encoding.Default;
                        objMailMessage.Body   =   strComment;
                        objMailMessage.BodyEncoding   =   System.Text.Encoding.Default;
                        objMailMessage.IsBodyHtml   =   true;
                        objMailMessage.To.Add(strEmailTo);
                        SmtpClient   client   =   new   SmtpClient(dtNew.Rows[0][ "SMTP "].ToString());//   IP   或   SMTP.josson.com
                     
                        client.UseDefaultCredentials   =   false;
                        client.Credentials   =   new   System.Net.NetworkCredential(dtNew.Rows[0][ "EMail "].ToString(),   dtNew.Rows[0][ "Pwd "].ToString());//邮箱地址,密码


                        client.DeliveryMethod   =   SmtpDeliveryMethod.Network;
                        client.Send(objMailMessage);
                        li_Return   =   1;
                }
                catch   (Exception   e)
                {
                        e.ToString();
                        li_Return   =   -1999050;
                }
                return   li_Return;
        }
方法2:

                        MailMessage   objMailMessage   =   new   MailMessage();
                        objMailMessage.From   =   new   MailAddress(dtNew.Rows[0][ "EMail "].ToString());   //邮箱地址   support@163.com
                        objMailMessage.Subject   =   strSubject;
                        objMailMessage.SubjectEncoding   =   System.Text.Encoding.Default;
                        objMailMessage.Body   =   strComment;
                        objMailMessage.BodyEncoding   =   System.Text.Encoding.Default;
                        objMailMessage.IsBodyHtml   =   true;
                        objMailMessage.To.Add(strEmailTo);
                        SmtpClient   client   =   new   SmtpClient();
                        client.Host   =   dtNew.Rows[0][ "SMTP "].ToString();//   SMTP.josson.com  
                        client.UseDefaultCredentials   =   false;
                        client.Credentials   =   new   System.Net.NetworkCredential(dtNew.Rows[0][ "EMail "].ToString(),   dtNew.Rows[0][ "Pwd "].ToString());//邮箱地址,密码
                        client.DeliveryMethod   =   SmtpDeliveryMethod.Network;
                        client.Send(objMailMessage);
                        li_Return   =   1;
换成163的邮箱基本OK,其他网站不行,以前好象有类似的帖子,但是没人解决掉,斑竹哥们,出来说话,哈哈!~先谢谢了!~

[解决办法]
参考:发送邮件
http://csharp.xdowns.com/archives/2006/01/21/119.html
http://www.cnblogs.com/stswordman/archive/2006/05/23/407263.html



[解决办法]
public void SendMail (mailobject mail)
{

MailMessage mailObj = new MailMessage();
// 设置email的 'from '和 'to '的地址
mailObj.From =mail.MailFrom;
mailObj.To =mail.MailTo;
mailObj.Subject =mail.MailSubject;
mailObj.Body =mail.MailBody;
System.Web.Mail.MailEncoding enc=new MailEncoding();
enc=MailEncoding.Base64;
MailAttachment att=new MailAttachment(mail.Attachments,enc);
mailObj.Attachments.Add(att);
// 使用SmtpMail对象来发送邮件。
SmtpMail.SmtpServer=mail.stmpserver;
mailObj.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate ", "1 ");
mailObj.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendusername ",mail.login);
//密码
mailObj.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendpassword ",mail.pwd);
SmtpMail.Send(mailObj);
}

public class mailobject
{
public string MailFrom;
public string MailTo;
public string MailSubject;
public string MailBody;
public string MailFormat;
public string mformat;//对邮件进行加密
public string Attachments;//附件
public string stmpserver;
public string login;
public string pwd;
public string email_to;

}
[解决办法]
很多邮箱以邮件都需要smtp验证的.
[解决办法]
有专门的邮件开源组件.
[解决办法]
跟踪调试看: client.Send(objMailMessage); 这步是否通过,如果通过就代表成功了。
否则是SMTP设置有问题。
[解决办法]
smtp.sina.com 也可以发
[解决办法]
1.首先,你们知道邮件服务器在哪里设置smtp吗?

你是要自己配置smtp服务器?还是?
如果自己配置,要看你用的是什么软件了。

2,看看是什么原因,是不是被拒了?什么原因被拒的。
这些都是有协议可查的。

热点排行