问题描述:现在有没有可以通过客户端直接发送到对方的邮件服务器,不需要用户登录验证的操作方式?据我所知,以前通过SMTP协议发送,是可以发送成功的,现在发送会被对方邮件服务器过滤掉,并返回相应错误。
请问有没有解决方法,如果有附上代码最好,谢谢!

解决方案 »

  1.   

    这个取决与你用什么方式的SMTP服务..如果SMTP不允许匿名发送,那必须需要提供用户名和密码的.
      

  2.   

    匿名协议??现在肯定不行貌似很多家邮件服务提供商都已经封这项业务了 163的 126的 hotmail的 基本没有了啊~~
      

  3.   

    没错,主要是接收方要回访发送方提供的SMTP服务器,这时候发现发送方提供的是一个自定义的邮件地址,自然也找不到对应的服务器,所以报域名服务出错。
    假如自定义的邮件地址能够提供给收件方服务器一个真实的存在的IP地址,这样就OK,不知道可不可做到?
      

  4.   


    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
            smtp.Credentials = new System.Net.NetworkCredential("username", "passwor");        smtp.EnableSsl = true;
            //smtp.UseDefaultCredentials = false;
            //MailMessage mailBody = new MailMessage(txtSender.Text.Trim().ToString(), txtReceiver.Text.Trim().ToString(), txtSubject.Text.Trim().ToString(), txtContent.Text.Trim().ToString());
            MailMessage mailBody = new MailMessage("[email protected]", "[email protected]", "text", "测试成功!");
            mailBody.BodyEncoding = System.Text.Encoding.Default;    //编码  
            try
            {
                smtp.Send(mailBody);
                Response.Write("<script>alert('邮件发送到 " + mailBody.To.ToString() + "');</script> ");        }
            catch (Exception ee)
            {
                Response.Write("<script>alert('" + ee.Message + "请仔细检查邮件服务器的设置是否正确!');</script>");
            }