System.Net.Mail.SmtpException: 发送邮件失败。 ---> System.FormatException: Base-64 字符数组的无效长度。
用163的邮箱是不会出问题的,用了公司提供的邮箱就出现这个问题,贴出如下代码,求解决方案
public void sendMail(string host, int port, string mailAddress, string username, string pwd, string title, string content, List<string> sendTo,
bool usePassword)
{
try
{
SmtpClient smtp = new SmtpClient(host, port);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = false;
if (usePassword)
smtp.Credentials = new NetworkCredential(username, pwd);
else
smtp.UseDefaultCredentials = true;
MailMessage mm = new MailMessage();
mm.Priority = MailPriority.High;
mm.From = new MailAddress(username, mailAddress, System.Text.Encoding.UTF8);
foreach (string toEmail in sendTo)
{
mm.To.Add(toEmail);
}
mm.Subject = title; //邮件标题
mm.SubjectEncoding = Encoding.UTF8;
string con = EncodeString(content);
Console.WriteLine(con);
mm.Body = con;
mm.BodyEncoding = System.Text.Encoding.UTF8;
mm.IsBodyHtml = true;
smtp.Send(mm);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
用163的邮箱是不会出问题的,用了公司提供的邮箱就出现这个问题,贴出如下代码,求解决方案
public void sendMail(string host, int port, string mailAddress, string username, string pwd, string title, string content, List<string> sendTo,
bool usePassword)
{
try
{
SmtpClient smtp = new SmtpClient(host, port);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = false;
if (usePassword)
smtp.Credentials = new NetworkCredential(username, pwd);
else
smtp.UseDefaultCredentials = true;
MailMessage mm = new MailMessage();
mm.Priority = MailPriority.High;
mm.From = new MailAddress(username, mailAddress, System.Text.Encoding.UTF8);
foreach (string toEmail in sendTo)
{
mm.To.Add(toEmail);
}
mm.Subject = title; //邮件标题
mm.SubjectEncoding = Encoding.UTF8;
string con = EncodeString(content);
Console.WriteLine(con);
mm.Body = con;
mm.BodyEncoding = System.Text.Encoding.UTF8;
mm.IsBodyHtml = true;
smtp.Send(mm);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
解决方案 »
- StreamWriter如何实现for循环啊?
- 动态添加的控件移除后 再重新加载又出现的问题????
- 为什么Myadapter.Fill(ds,"表1");不能把DATASET的数据增加到数据库里
- c#2005中,工具,选项中的设置如何恢复默认的设置了,我设置乱了。想复原。
- 急问,如果在textbox中,有一大段文本,现在要匹配类似于以"<<"开头,并以 ">>"结束的字符串(例如:"<<china great>>"),只要遇到一个就
- 在winform里,怎样让dataGrid里的某一行为可写,其它的行为只读?
- 來看看老朋友﹐順便帶上几個問題為難一下以表心意﹐祝大家十一節日快樂﹗﹗﹗﹗﹗﹗﹗﹗﹗哇哈哈哈。。。。
- 谁能帮我解释这段代码?
- C#(windows)
- C#多线程实现缓冲区读写操作
- 怎样用vb做一个MP3播放器
- TableLayoutPanel如何设置单元格间距?
{
byte[] encrypted = Convert.FromBase64String(content);
return System.Text.ASCIIEncoding.UTF8.GetString(encrypted);
}
public string EncodeString(string content)
{
byte[] encrypted = Encoding.UTF8.GetBytes(content);
return Convert.ToBase64String(encrypted);
}
直接赋值行不行