关于发送邮件,服务器如何设置的问题?

东云180 2011-06-15 10:13:40
发邮件在本地OK,之前的服务器也可以,今天转服务器后,发邮件就没发送成功过。请问有哪位知道是什么原因吗..该如何解决呀
...全文
342 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
东云180 2011-06-16
  • 打赏
  • 举报
回复
谢谢给位的热心回答!问题已经解决了。

原因是服务器上装有 macfee软件,macfee开启了访问保护,只要把这个访问保护禁用掉,
就可以了!
net5354 2011-06-15
  • 打赏
  • 举报
回复
子夜__ 2011-06-15
  • 打赏
  • 举报
回复
换个代码看看
nt client = new SmtpClient("smtp.163.com"); 

client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("cwy_speed@163.com", "cwy_speed");
client.DeliveryMethod = SmtpDeliveryMethod.Network;

MailAddress addressFrom = new MailAddress("a@a.com", "张三");
MailAddress addressTo = new MailAddress(strto, "李四");

System.Net.Mail.MailMessage message = new MailMessage(addressFrom, addressTo);
message.Sender = new MailAddress("cwy_speed@163.com");
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;

client.Send(message);



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Mail;

namespace MailSender
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
MailMessage objMailMessage;
MailAttachment objMailAttachment;

// 创建一个附件对象
objMailAttachment = new MailAttachment("C:\\1.xml");//发送邮件的附件

// 创建邮件消息
objMailMessage = new MailMessage();
objMailMessage.From = "mytest110@sina.com";//源邮件地址
objMailMessage.To = "********@qq.com";//目的邮件地址
objMailMessage.Subject = "邮件发送标题:你好";//发送邮件的标题
objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容
objMailMessage.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中

//接着利用sina的SMTP来发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本
//基本权限
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");

//用户名
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "mytest110");

//密码
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "******");

//如果没有上述三行代码,则出现如下错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为:530 Authentication required

//SMTP地址
SmtpMail.SmtpServer = "smtp.sina.com";

// 开始发送邮件
// 在发送之前,去新浪邮箱里开启POP/SMTP设置 邮箱设置->账户->POP/SMTP设置->开启
// 否则会报错误0x80040217. The server response was not available
SmtpMail.Send(objMailMessage);
}
}
}
东云180 2011-06-15
  • 打赏
  • 举报
回复
发送邮件在本地是可以的,在之前的服务器也行的,今天转服务器后发送邮件就报Failure sending mail.这个异常信息!在网上也搜了好久,都没找到合适的答案!
小童 2011-06-15
  • 打赏
  • 举报
回复
MailAddress from = new MailAddress("gaosheng@hotmail.com", "高升"); //邮件的发件人

MailMessage mail = new MailMessage();

//设置邮件的标题
mail.Subject = txtSubject.Text;

//设置邮件的发件人
//Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用
mail.From = from;

//设置邮件的收件人
string address = "";
string displayName = "";
/**//* 这里这样写是因为可能发给多个联系人,每个地址用 ; 号隔开
一般从地址簿中直接选择联系人的时候格式都会是 :用户名1 < mail1 >; 用户名2 < mail 2>;
因此就有了下面一段逻辑不太好的代码
如果永远都只需要发给一个收件人那么就简单了 mail.To.Add("收件人mail");
*/
string[] mailNames = (txtMailTo.Text + ";").Split(';');
foreach (string name in mailNames)
...{
if (name != string.Empty)
...{
if (name.IndexOf('<') > 0)
...{
displayName = name.Substring(0, name.IndexOf('<'));
address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
}
else
...{
displayName = string.Empty;
address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
}
mail.To.Add(new MailAddress(address, displayName));
}
}

//设置邮件的抄送收件人
//这个就简单多了,如果不想快点下岗重要文件还是CC一份给领导比较好
mail.CC.Add(new MailAddress("Manage@hotmail.com", "尊敬的领导");

//设置邮件的内容
mail.Body = txtBody.Text;
//设置邮件的格式
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
//设置邮件的发送级别
mail.Priority = MailPriority.Normal;

//设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中
string fileName = txtUpFile.PostedFile.FileName.Trim();
fileName = "D:\UpFile\" + fileName.Substring(fileName.LastIndexOf("\") + 1);
txtUpFile.PostedFile.SaveAs(fileName); // 将文件保存至服务器
mail.Attachments.Add(new Attachment(fileName));

mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;

SmtpClient client = new SmtpClient();
//设置用于 SMTP 事务的主机的名称,填IP地址也可以了
client.Host = "smtp.hotmail.com";
//设置用于 SMTP 事务的端口,默认的是 25
//client.Port = 25;
client.UseDefaultCredentials = false;
//这里才是真正的邮箱登陆名和密码,比如我的邮箱地址是 hbgx@hotmail, 我的用户名为 hbgx ,我的密码是 xgbh
client.Credentials = new System.Net.NetworkCredential("hbgx", "xgbh");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//都定义完了,正式发送了,很是简单吧!
client.Send(mail);
小童 2011-06-15
  • 打赏
  • 举报
回复
主要设置好邮件服务器的配置。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧