在学校内网,只能用内部的邮箱SMTP,POP3收发邮件。配置如下:
<system.net>
<mailSettings>
<smtp from="内部邮箱">
<network host="内部SMTP服务器地址" password="123456" port="25" userName="***" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
代码如下: /// <summary>
/// 发送邮件
/// </summary>
/// <param name="email">邮件地址</param>
/// <param name="subject">标题</param>
/// <param name="body">内容</param>
/// <param name="file">附件</param>
/// <returns>消息</returns>
public static string SendWebMail(string email, string subject, string body, string file)
{
string msg = string.Empty;
System.Net.Configuration.SmtpSection smtpSec = (System.Net.Configuration.SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
System.Net.Mime.ContentDisposition disposition;
MailMessage message = new MailMessage(smtpSec.From, email, subject, body);
SmtpClient client = new System.Net.Mail.SmtpClient(smtpSec.Network.Host, smtpSec.Network.Port);
client.Credentials = new System.Net.NetworkCredential(smtpSec.Network.UserName, smtpSec.Network.Password);
if (!string.IsNullOrEmpty(file))
{
Attachment data = new Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
message.Attachments.Add(data);
try
{
client.Send(message);
}
catch (SmtpException e)
{
msg = e.Message;
}
finally
{
data.Dispose();
}
}
else
{
try
{
client.Send(message);
}
catch (SmtpException e)
{
msg = e.Message;
}
}
return msg;
}发送失败,提示是:不是本地用户;请尝试不同的路径。 服务器响应为: auth error. (ÈÏÖ¤ÓÀ¾Ãʧ°Ü)
用FOXMAIL可以用配置中的帐户发信,但是非内部邮箱是不能用FOXMAIL收发邮件,比如163等
请教,是那边的服务器配置问题,还是别的?
<system.net>
<mailSettings>
<smtp from="内部邮箱">
<network host="内部SMTP服务器地址" password="123456" port="25" userName="***" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
代码如下: /// <summary>
/// 发送邮件
/// </summary>
/// <param name="email">邮件地址</param>
/// <param name="subject">标题</param>
/// <param name="body">内容</param>
/// <param name="file">附件</param>
/// <returns>消息</returns>
public static string SendWebMail(string email, string subject, string body, string file)
{
string msg = string.Empty;
System.Net.Configuration.SmtpSection smtpSec = (System.Net.Configuration.SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
System.Net.Mime.ContentDisposition disposition;
MailMessage message = new MailMessage(smtpSec.From, email, subject, body);
SmtpClient client = new System.Net.Mail.SmtpClient(smtpSec.Network.Host, smtpSec.Network.Port);
client.Credentials = new System.Net.NetworkCredential(smtpSec.Network.UserName, smtpSec.Network.Password);
if (!string.IsNullOrEmpty(file))
{
Attachment data = new Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
message.Attachments.Add(data);
try
{
client.Send(message);
}
catch (SmtpException e)
{
msg = e.Message;
}
finally
{
data.Dispose();
}
}
else
{
try
{
client.Send(message);
}
catch (SmtpException e)
{
msg = e.Message;
}
}
return msg;
}发送失败,提示是:不是本地用户;请尝试不同的路径。 服务器响应为: auth error. (ÈÏÖ¤ÓÀ¾Ãʧ°Ü)
用FOXMAIL可以用配置中的帐户发信,但是非内部邮箱是不能用FOXMAIL收发邮件,比如163等
请教,是那边的服务器配置问题,还是别的?
解决方案 »
- 求一个存储过程
- 想做一套学生证打印系统,请前辈指导下思路和需要用到的控件等,小弟先感谢了!
- visual studio 2005 在那里改工程路径啊?
- 指定了[AjaxMethod]属性的方法是不是不能处理服务器端属性
- 最后20分求助:显示与隐藏GridView内容,用div可以?
- 新手求救:关于把excel数据导入sql server的问题
- 前辈们希望你们能提供asp.net完整的源代码.谢谢大家.
- 多么希望IE也能处理c#脚本啊,免得我再要去学javascript!
- 请教个GridView显示数据库内容的问题
- 能介绍下Web Service这个东西吗?
- GridView加复选框点删除时弹出对话框问题
- 怎样在刷新页面后保持页面的数据不变
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.163.com" password="123456" port="25" userName="abc" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
System.Net.Mail.SmtpStatusCode.UserNotLocalTryAlternatePath
CONFIG:
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.263xmail.com" password="******" port="25" userName="[email protected]" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>cs code:
public static void sendemail(string receiveEmail,string title,string content,string type)//收件人,标题,内容,
{
MailMessage mail = new MailMessage();
mail.To.Add(new MailAddress(receiveEmail));
mail.To.Add(new MailAddress("[email protected]"));
mail.Subject = title;
mail.Body =content;
mail.Priority = MailPriority.High;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = true;
//mail.Body.ToString().Replace("on_", "on");
SmtpClient client = new SmtpClient();
client.Send(mail);
}
为什么你的system.net/mailSettings/smtp/network里的userName不是sales,而是[email protected]?
我的情况是用我的代码在内网发送不成功(无论什么邮箱,内网自己提供的或者163),外网能发送成功(用163)
...
//设置为需要用户验证
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
...
竟然成功,也就是说System.Net.Mail的时候也要设置为需要用户验证,怎么设???
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.263xmail.com" password="******" port="25" userName="[email protected]" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net> cs code:
public static void sendemail(string receiveEmail,string title,string content,string type)//收件人,标题,内容,
{
MailMessage mail = new MailMessage();
mail.To.Add(new MailAddress(receiveEmail));
mail.To.Add(new MailAddress("[email protected]"));
mail.Subject = title;
mail.Body =content;
mail.Priority = MailPriority.High;
mail.SubjectEncoding = Encoding.UTF8;
mail.IsBodyHtml = true;
//mail.Body.ToString().Replace("on_", "on");
SmtpClient client = new SmtpClient();
client.Send(mail);
}
只能使用同一 domain 的 SMTP 服务器才行
//设置为需要用户验证
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
...
求System.Net.Mail下的上述设置.(如果交差已经OK,但求甚解)
刚好有一篇System.net.mail 发邮件的,参考一下吧.
到于这个问题
@youismyo2:
为什么你的system.net/mailSettings/smtp/network里的userName不是sales,而是[email protected]?
我的情况是用我的代码在内网发送不成功(无论什么邮箱,内网自己提供的或者163),外网能发送成功(用163) from="[email protected]"> 这个地方我试过了,这里会在收件人那里显示发件人的邮箱就是这个,而不是这个userName="[email protected]"