当前位置:编程学习 > C#/ASP.NET >>

asp.net邮箱发送邮件问题

首先我用我的QQ邮箱给Gmail发邮件
代码:
string emailTo = "hcshasz789@gmail.com";
        bool success = true;
string host = "smtp.qq.com";
        string emailUser = "934350983";   //发件人邮箱登录帐号
        string emailPassword = "********";   //发件人邮箱登录密码
        string emailFrom = "934350983@qq.com";   //发件人邮箱
        if (emailTo == "" || emailTo == null)
        {
            success = false;
        }
        else
        {
            System.Net.Mail.SmtpClient client = new SmtpClient();
            client.Host = host;
            client.UseDefaultCredentials = false;
            client.EnableSsl = false;
            client.Port = 110;
            client.Credentials = new System.Net.NetworkCredential(emailUser, emailPassword);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            System.Net.Mail.MailMessage message = new MailMessage(emailFrom, emailTo);
           message.Subject = "标题";   //邮件标题
           message.Body = "内容";   //邮件内容
            message.BodyEncoding = System.Text.Encoding.UTF8;
           message.IsBodyHtml = true;
        



            client.Send(message);
这个出现了:
参数或变量中有语法错误。 服务器响应为: mail from address must be same as authorization user

我又用Gamil来给我的QQ邮箱发邮件
代码:
MailAddress to = new MailAddress("934350983@qq.com");
        MailAddress from = new MailAddress("hcshasz789@gmail.com");
        MailMessage message = new MailMessage(from,to);
        message.Subject = "subject";//设置邮件主题
        message.IsBodyHtml = true;//设置邮件正文为html格式
        message.Body = "body";//设置邮件内容
        SmtpClient client = new SmtpClient("smtp.mail.yahoo.com");
    
        //设置发送邮件身份验证方式
        //注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com
        client.Credentials = new NetworkCredential("hcshasz789","******");//账号和密码
        client.Port = 465;
        client.Send(message);
出现这个错误:
{"无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。"}

都有错
都错在哪啊
那个大神来看看

追问:我是用网上徳一个邮箱向另一个邮箱发邮件 你这是用的做放松邮件的软件之类的内容 
一 你是粘贴的内容 你根本不懂 二 你没解决我的问题 你这种人最TMD烦人了 滚!
答案:using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Text;
/// <summary>
/// SendEmail 的摘要说明
/// </summary>
public class SendEmail
{
 public SendEmail()
 {
  
 }
    private MailMessage mailMessage;

    private SmtpClient smtpClient;

    private string password;//发件人密码  

    /// <summary>
    /// 处审核后类的实例
    /// </summary>
    /// <param name="to">收件人地址</param>
    /// <param name="from">发件人地址</param>
    /// <param name="content">邮件正文</param>
    /// <param name="title">邮件主题</param>
    /// <param name="pwd">发件人密码</param>
    public SendEmail(string to, string from, string content, string title, string pwd)
    {
        mailMessage= new MailMessage();
        mailMessage.To.Add(to);
        mailMessage.From = new MailAddress(from);
        mailMessage.Subject = title;
        mailMessage.Body = content;
        mailMessage.IsBodyHtml = true;
        mailMessage.BodyEncoding = Encoding.UTF8;
        mailMessage.Priority = MailPriority.High;
        this.password = pwd;
    }
    /// <summary>
    /// 添加附件
    /// </summary>
    /// <param name="Path">路径</param>
    public void add(string Path)
    {
        string[] path = Path.Split(',');
        Attachment data; ;
        ContentDisposition disposition;
        for (int i = 0; i < path.Length; i++)  
        {  
            data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件  
            disposition = data.ContentDisposition;  
            disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期  
            disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期  
            disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期  
            mailMessage.Attachments.Add(data);//添加到附件中  
        }  
    }
    /// <summary>
    /// 发送
    /// </summary>
    public void Send()  
    {  
        if (mailMessage != null)
        {
            smtpClient = new SmtpClient();
            smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//

            smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            smtpClient.Host = "smtp." + mailMessage.From.Host;
            smtpClient.Send(mailMessage);
        }  
    }  

}

 

 

调用

 

SendEmail s = new SendEmail(TextBox1.Text, TextBox4.Text, TextBox3.Text, TextBox2.Text, TextBox5.Text);
s.Send();

会不会是没注册的问题?GMail我没用过,我用的是JMail。这个是我原先项目里的部分代码:
MessageClass message = new MessageClass();message.Charset = "gb2312";message.From = "zzb442787268@163.com";message.Subject = "密码找回";message.HTMLBody = "<style=\"color:#0000FF; font-size:12px; font-family:宋体;\">您的密码是:" + Maticsoft.DBUtility.DESEncrypt.Decrypt(Convert.ToString(dr["UserPwd"])); ;message.MailServerUserName = "zzb442787268";message.MailServerPassWord = "**********";message.AddRecipient(442787268@qq.com, "", "");message.Send("smtp.163.com", false);Response.Write("<script language='javascript'>alert('您的密码已经发送到绑定邮箱上,请查收!);location.href('SendEmail.aspx');</script>");附:Jmail的注册方式:regsvr32   jmail.dll//如果有路径的话,jmail.dll要写完整的路径这个是在XP下注册的,WIN 7下,我还没注册成功过...

上一个:asp.net如何连接Oracle数据库?
下一个:ASP.Net(C#)问题?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,