Jmail发送邮件问题解决方法

    The message was undeliverable. All servers failed to receive the message

    今天遇到这个问题,分享一下我的解决办法。

    第一次做测试的时候,是用QQ邮箱发的,报错后百度结果说没有开启SMTP服务,然后进QQ邮箱开启了,结果还是这个问题。

后来换了之前同事的QQ邮箱来发,却来发送成功,对比两个邮箱的设置后发现他的邮箱没有独立密码,而我这边提示必须设置独立密码后才能开启SMTP服务。他那边能那样设置,我就搞不懂了。

    我想可能就是独立密码的关系,然后申请了一个网易邮箱,开通SMTP服务后再来测试,竟然发送成功了!!!

不啰嗦了,贴代码。

protected void Page_Load(object sender, EventArgs e)
    {
        string str = @"  你好啊 邓苦逼";
        SendEmail("小逼崽子你好", str, "收件人邮箱");
    }

 /// <summary>
    /// 发送邮件
    /// </summary>
    /// <param name="Subject">主题</param>
    /// <param name="body">内容</param>
    /// <param name="FromEmail">你的email</param>
    /// <param name="FromEmail">对方的email</param>
    /// <param name="AddAttachment">附件</param>
    /// <param name="PassWord">邮箱的登陆密码</param>
    /// <param name="Mailserver">发送服务器</param>
    private static void SendEmail(String Subject, String body, string FromEmail, String ToEmail, String AddAttachment, string PassWord, string Mailserver)
    {
        jmail.Message Jmail = new jmail.Message();
        //Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send() 会根据操作结果返回true或false 
        Jmail.Silent = false;
        //Jmail创建的日志,前提loging属性设置为true                
        Jmail.Logging = true;
        //字符集,缺省为"US-ASCII"               
        Jmail.Charset = "GB2312";
        //信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。
        //  Jmail.ContentType = "text/html";
        ToEmail = ToEmail.Replace("/n", "").Replace(" ", "");
        string[] str = ToEmail.Split(',');
        for (int i = 0; i < str.Length; i++)
        {
            //添加收件人
            Jmail.AddRecipient(str[i], "", "");
            Jmail.From = FromEmail;
            //发件人邮件用户名
            Jmail.MailServerUserName = FromEmail;
            //发件人邮件密码
            Jmail.MailServerPassWord = PassWord;
            //设置邮件标题
            Jmail.Subject = Subject;
            // 邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( "c://test.jpg",true,null);)就可以搞 定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
            if (AddAttachment != "")
                Jmail.AddAttachment(AddAttachment, true, null);
            //邮件内容
            Jmail.Body = body;
            //加密文件
            //Jmail.PGPEncrypt = true;
            //Jmail发送的方法
            Jmail.Send(Mailserver, false);
            Jmail.ClearAttachments();
            Jmail.ClearRecipients();
        }
        Jmail.Close();
    }
    /// <summary>
    /// 发送邮件
    /// </summary>
    /// <param name="title">主题</param>
    /// <param name="test">内容</param>
    /// <param name="email">邮件</param>
    public static void SendEmail(string title, string test, string email)
    {
        SendEmail(title, test, "邮箱帐号", email, "", "邮箱密码", "SMTP服务器:smtp.163.com,如果是腾讯邮箱,请改用smtp.qq.com");
    }

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/57962.html

(0)
上一篇 2021年8月9日
下一篇 2021年8月9日

相关推荐

发表回复

登录后才能评论