方法如下:
public static bool SendMailMethod(string strFrom,string [] strto,string strSmtpServer,bool isSSL,string UserName,string Password,string strSubject, string strBody, string strFileName)
{
bool isSuc=false;
//发送
try
{
//生成一个 使用SMTP发送邮件的客户端对象
SmtpClient client = new SmtpClient(strSmtpServer);
//表示以当前登录用户的默认凭据进行身份验证
client.UseDefaultCredentials = true;
//包含用户名和密码
client.Credentials = new System.Net.NetworkCredential(UserName, Password);
//指定如何发送电子邮件。
//Network 电子邮件通过网络发送到 SMTP 服务器。
//PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。
//SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。 client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//建立邮件对象
MailMessage message = new MailMessage();
message.From = new MailAddress(strFrom);
foreach (string thisAdd in strto)
{
message.To.Add(new MailAddress(thisAdd));
}
message.Subject = strSubject;
message.Body = strBody;
//定义邮件正文,主题的编码方式
message.BodyEncoding = System.Text.Encoding.GetEncoding("UTF-8");
message.SubjectEncoding = System.Text.Encoding.GetEncoding("UTF-8"); //获取或设置一个值,该值指示电子邮件正文是否为 HTML。
message.IsBodyHtml = true; client.EnableSsl = isSSL;
//指定邮件优先级 message.Priority = System.Net.Mail.MailPriority.Normal; //添加附件
//System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@"f:/baihe.txt");
if (strFileName != "" && strFileName != null)
{
Attachment data = new Attachment(strFileName);
message.Attachments.Add(data);
}
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
client.Send(message);
isSuc = true;
return isSuc;
}
catch (SmtpException ex)
{
isSuc = false;
throw ex;
}
}
我的这个方法用163邮箱可以发送,用其他的不能发送,我开启了smtp模式
提示服务器不支持安全连接
public static bool SendMailMethod(string strFrom,string [] strto,string strSmtpServer,bool isSSL,string UserName,string Password,string strSubject, string strBody, string strFileName)
{
bool isSuc=false;
//发送
try
{
//生成一个 使用SMTP发送邮件的客户端对象
SmtpClient client = new SmtpClient(strSmtpServer);
//表示以当前登录用户的默认凭据进行身份验证
client.UseDefaultCredentials = true;
//包含用户名和密码
client.Credentials = new System.Net.NetworkCredential(UserName, Password);
//指定如何发送电子邮件。
//Network 电子邮件通过网络发送到 SMTP 服务器。
//PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。
//SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。 client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//建立邮件对象
MailMessage message = new MailMessage();
message.From = new MailAddress(strFrom);
foreach (string thisAdd in strto)
{
message.To.Add(new MailAddress(thisAdd));
}
message.Subject = strSubject;
message.Body = strBody;
//定义邮件正文,主题的编码方式
message.BodyEncoding = System.Text.Encoding.GetEncoding("UTF-8");
message.SubjectEncoding = System.Text.Encoding.GetEncoding("UTF-8"); //获取或设置一个值,该值指示电子邮件正文是否为 HTML。
message.IsBodyHtml = true; client.EnableSsl = isSSL;
//指定邮件优先级 message.Priority = System.Net.Mail.MailPriority.Normal; //添加附件
//System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@"f:/baihe.txt");
if (strFileName != "" && strFileName != null)
{
Attachment data = new Attachment(strFileName);
message.Attachments.Add(data);
}
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
client.Send(message);
isSuc = true;
return isSuc;
}
catch (SmtpException ex)
{
isSuc = false;
throw ex;
}
}
我的这个方法用163邮箱可以发送,用其他的不能发送,我开启了smtp模式
提示服务器不支持安全连接
解决方案 »
- 父页面部分控件已经录入数据,此时弹出子页面,子页面传值给父页面,父叶面的刷新问题
- jquery引用问题
- 新手欲学asp.net,高手给多指导两句!好心人进!
- asp.net执行存储过程的问题!!
- 帮忙解决一下调用存储过程通用访问类
- gridview 的问题
- 怎么动态改变<title></title>中的值?
- IIS设置问题,急!
- 连接SQL数据库的时候,输入错误的密码还可以登陆?帮忙看看哪里错了?
- 如果要使文本框中的数据必须填入值,而且必须是数字,难道得用两个验证控件来验证吗?RequiredFieldValidator和RangeValidator
- web services如何调用dll文件
- <cc1:Calendar id="EndDate" runat="server" CalendarMode="Date">加什么代码可以在点击的时候选择时分?
就以为所有smtp服务器都可以免费给你随便用!!
client.Credentials = new System.Net.NetworkCredential(UserName, Password);
刚才我回答了跟这个一样的帖子是你的不啊?
这个问题很正常 有的不提供免费的服务器
他用自己的服务器发送自己的邮件,
当然可以了....."我写程序就不能达到那种情况吗"你写的程序是在你的服务器上运行,
是借用他的stmp服务器,
没有经过授权,
不给你用,
也很正常,
有什么好疑问的????
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 = "[email protected]";//源邮件地址
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);
}
}
}
public void SendMailUseGmail()
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add("[email protected]");
//msg.To.Add("[email protected]");
/**/
/*
* msg.To.Add("[email protected]");
* msg.To.Add("[email protected]");
* msg.To.Add("[email protected]");可以发送给多人
*/
// msg.CC.Add("[email protected]");
/**/
/*
* msg.CC.Add("[email protected]");
* msg.CC.Add("[email protected]");可以抄送给多人
*/
msg.From = new MailAddress("[email protected]", "Alarm", System.Text.Encoding.UTF8);
msg.Subject = "这是测试邮件";//邮件标题
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
msg.Body = "邮件内容";//邮件内容
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
msg.IsBodyHtml = false;//是否是HTML邮件
msg.Priority = MailPriority.High;//邮件优先级
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential("[email protected]", "111111");//上述写你的GMail邮箱和密码
client.Port = 587;//Gmail使用的端口
client.Host = "smtp.gmail.com";
client.EnableSsl = true;//经过ssl加密
object userState = msg;
try
{
client.Send(msg);
MessageBox.Show("发送成功");
// client.SendAsync(msg, userState);
//简单一点儿可以client.Send(msg);
}
catch (System.Net.Mail.SmtpException ex)
{
}
}
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "mytest110");引用的是哪个命名空间啊我这里怎么点不出fields ,
你这个只是针对sina吗
http://www.cnblogs.com/insus/articles/1689279.html
这个能举个例子吗?
很多大点的企业,
都是自己架设smtp服务器