SmtpClient 发送企业邮箱问题
问题:如163/sina/gmail/QQ等免费邮箱都可以发;但企业邮箱发不出去,如21、35之类的企业邮箱.跪求赐教!
部分代码:
//创建smtpclient对象
System.Net.Mail.SmtpClient client = new SmtpClient();
client.Timeout = 600000;
client.Host = send_stmp;
if (port != 0)
{
client.Port = port;//使用的端口
}
if (ssl == 1)
{
client.EnableSsl = true;//经过ssl加密
}
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new System.Net.NetworkCredential(send_email, send_pwd);
//创建mailMessage对象
System.Net.Mail.MailMessage message = new MailMessage(send_email, recv_email);
message.Subject = title;
message.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
//正文默认格式为html
message.Body = content;
message.IsBodyHtml = true;
message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
//添加附件
try
{
for (int p = 0; p < paths.Count; p++)
{
Stream stream = null;
//System.Encoding.UTF8.GetBytes(System.String);
//System.Text.Encoding.UTF8.GetBytes(paths[p]);
FileInfo fi = new FileInfo(paths[p].ToString());
FileStream fs = fi.OpenRead();
Byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
stream = new MemoryStream(bytes);
System.Net.Mail.Attachment item = new System.Net.Mail.Attachment(stream, pathNames[p].ToString());
item.NameEncoding = System.Text.Encoding.UTF8;
message.Attachments.Add(item);
}
}
catch
{
}
if (ssl == 1)
{
object userState = message;
try
{
client.SendAsync(message, userState);
success++;
}
catch
{
fail++;
}
}
else
{
try
{
client.Send(message);
success++;
}
catch
{
fail++;
}
}
--------------------编程问答-------------------- ……据我所知163的新邮箱(具体0几年就不记得了)是不能用程序发邮件的(就像楼主这样),而163老邮箱是可以的(0几年的我就不记得了)。
至于企业邮箱也是一样:首先要确定人家是否支持这么干。 --------------------编程问答-------------------- 其实网上很多发邮件的代码也就那么几个版本,剩下都是转来转去的。好多人反应不好用,其实最根本原因是:用的邮箱不支持这样做 --------------------编程问答--------------------
支持呀,用outlook,foxmail能发,就是想知道:这种方式跟outlook的区别在哪 --------------------编程问答-------------------- http://www.qudong.com/soft/program/C/rumenjiaocheng/20080401/5239.html --------------------编程问答--------------------
这个相当于调用组件,还有别的方法吗? --------------------编程问答-------------------- 还有好人帮忙解答下吗? --------------------编程问答--------------------
#region 发送exchange邮件(内网邮件)
public void SendExchangeMail(string mailServer,string sendAdd,
string receiverAdd,string subject,string body)
{
try
{
SmtpMail.SmtpServer = mailServer;
//设置发送邮件的Smtp服务器,目前没有提供需要身份验证的服务器的登陆方法
SmtpMail.Send(sendAdd, receiverAdd, subject, body);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
#endregion
我昨天刚做的,测试过了,企业内部邮箱可以
补充:.NET技术 , C#