smtpClient發郵件錯誤:不允許使用郵箱名稱

   許多網站個人密碼丟失,找回密碼的辦法是:系統自動發送給你以前的密碼到你的密保郵箱。以下是自動發送密碼的核心代碼:注意看加顏色的代碼行。

 

   給本方法帶參數如:EmailSend("這個參數是郵件的內容-body","收件人[email protected]","發件人[email protected]","發件人密碼-1243")

 

    /// <summary>
    /// 發送郵件
    /// </summary>
    /// <param name="mailinfo">郵件的一些屬性</param>
    /// <param name="smtpname">SMTP事務的主機名稱</param>
    /// <param name="username">自己的郵箱登錄名</param>
    /// <param name="pwd">郵箱的密碼</param>
    /// <returns></returns>
    /// <author>Wilhelm Von Arminius</author>
    public Boolean EmailSend(MailMessage mailinfo, string username, string adminusername, string adminpwd)
    {
        bool flag = false;
        try
        {
            MailAddress from = new MailAddress(adminusername); //郵件的發件人
            MailMessage mail = new MailMessage();
            //設置郵件的標題
            mail.Subject = "淘寶會員密碼";  
            //設置郵件的發件人
            mail.From = from;
            //設置郵件的收件人
            string address = username;
            string displayName = username.Split('@').FirstOrDefault().ToString();
            mail.To.Add(new MailAddress(address, displayName, System.Text.Encoding.UTF8));

            /**/
            //設置郵件的內容
            mail.Body = mailinfo.Body;
            //設置郵件的格式
            mail.BodyEncoding = System.Text.Encoding.UTF8;
            mail.IsBodyHtml = true;

            //設置郵件的發送級別
            mail.Priority = MailPriority.Normal;
            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;

            SmtpClient client = new SmtpClient();
            //設置用於 SMTP 事務的主機的名稱,填IP地址也可以了            
            client = new System.Net.Mail.SmtpClient("smtp.ym.163.com"); //其它的,列如:smtp.qq.com,smtp.sina.com

            //設置用於 SMTP 事務的端口,默認的是 25
            client.Port = 25;
            client.UseDefaultCredentials = true;            
            string ss = adminusername.Split('@').FirstOrDefault().ToString();
            // client.Credentials = new System.Net.NetworkCredential(ss, adminpwd); //這一行代碼會報錯,不能去掉@之後語句.
            client.Credentials = new System.Net.NetworkCredential(adminusername, adminpwd); //("[email protected]","111")
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Timeout = 300000;           
            client.Send(mail);
            flag = true;
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
        return flag;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章