51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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");
}


赞(0)
未经允许不得转载:工具盒子 » Jmail发送邮件问题解决方法