求asp.net发邮件的方法?

leejelen 2010-01-08 11:44:37
请问哪位仁兄能提供一下asp.net中发邮件的方法,除了jmail和.net自带的那两个组件之外,还有什么其他的!
还有,哪位高手提供下可以测试空间支持的邮件服务器的代码,谢谢了,万分感激!
...全文
427 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
polarissky 2010-01-09
  • 打赏
  • 举报
回复
方法不重要,只要参数配置正确就可以

private static void sendMail(string name, string email)
{
string smtpServer = "smtp.gmail.com";//服务器
int smtpPort = 587;//端口
string userAccount = "";//用户名
string userPassword = "";//密码
string userName = "";//发件人名称
string EmailAddress = "";//发件邮箱
string strto = email;//目的邮箱
string strSubject = "";//主题
string strBody = "";
System.Net.Mail.SmtpClient client = new SmtpClient(smtpServer, smtpPort);
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Credentials = new System.Net.NetworkCredential(userAccount, userPassword);
client.DeliveryMethod = SmtpDeliveryMethod.Network;

MailAddress fromEmal = new MailAddress(EmailAddress, userName);
MailAddress toEmail = new MailAddress(strto);
System.Net.Mail.MailMessage message = new MailMessage(fromEmal, toEmail);
message.Subject = strSubject;
message.Body = strBody;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;

client.Send(message);
}
wrq147 2010-01-09
  • 打赏
  • 举报
回复
配置设置:

CDO.IConfiguration iConfg = emailMsg.Configuration;
ADODB.Fields oFields = iConfg.Fields;
oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 发送端口;
oFields["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"].Value = 登陆名@服务器地址
oFields["http://schemas.microsoft.com/cdo/configuration/smtpaccountname"].Value = 登陆名@服务器地址

oFields["http://schemas.microsoft.com/cdo/configuration/sendusername"].Value = 用户名

oFields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value = 密码

oFields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"].Value = 1;
oFields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"].Value = SMTP服务器端口;
oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = SMTP服务器
oFields.Update();


leejelen 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 saishangpeiqian 的回复:]
/// <summary>
    /// Author:ylasa
    /// </summary>
    /// <param name="strSmtpServer">第一个参数如果是163邮箱就写smtp.163.com </param>
    /// <param name="strFrom">第二个参数发件人的帐号 </param>
    /// <param name="strFromPass">第三个参数发件人密码 </param>
    /// <param name="strto">第四个参数收件人帐号 </param>
    /// <param name="strSubject">第五个参数主题 </param>
    /// <param name="strBody">第六个参数内容. </param>
    public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
    {
        System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
        client.UseDefaultCredentials = false;
        client.Credentials =
        new System.Net.NetworkCredential(strFrom, strFromPass);
        client.DeliveryMethod = SmtpDeliveryMethod.Network;

        System.Net.Mail.MailMessage message =
        new MailMessage(strFrom, strto, strSubject, strBody);
        message.BodyEncoding = System.Text.Encoding.UTF8;
        message.IsBodyHtml = true;
        client.Send(message);
    }
[/Quote]

这个是.net自带的啊,我要的是cdo.message的,一样的么?
saishangpeiqian 2010-01-09
  • 打赏
  • 举报
回复
/// <summary>
/// Author:ylasa
/// </summary>
/// <param name="strSmtpServer">第一个参数如果是163邮箱就写smtp.163.com </param>
/// <param name="strFrom">第二个参数发件人的帐号 </param>
/// <param name="strFromPass">第三个参数发件人密码</param>
/// <param name="strto">第四个参数收件人帐号 </param>
/// <param name="strSubject">第五个参数主题 </param>
/// <param name="strBody">第六个参数内容. </param>
public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials =
new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;

System.Net.Mail.MailMessage message =
new MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
}
leejelen 2010-01-09
  • 打赏
  • 举报
回复
难道在asp.net中,就没有人用过cdo.message发过邮件的么?有的快来啦,郁闷了啊!之前本来用JMAIL的可以发的,可惜那空间不支持,请问那些做空间的朋友,能不能在其空间上安装那个组件的啊!
new_2020 2010-01-09
  • 打赏
  • 举报
回复
ding...
leejelen 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zhoufoxcn 的回复:]
引用 20 楼 leejelen 的回复:
System.Runtime.InteropServices.COMException (0x80040220): The "SendUsing" configuration value is invalid. at CDO.MessageClass.Send() at sushi.Web.SendMail.btnSubmit_Click(Object sender, ImageClickEventArgs e)

出现这个问题?

真拿你没办法,直路不走,非要绕弯。
[/Quote]

我就是不明白啊,你说清楚点好么,我挂上服务器也是这个问题,明明支持的!
周公 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 leejelen 的回复:]
System.Runtime.InteropServices.COMException (0x80040220): The "SendUsing" configuration value is invalid. at CDO.MessageClass.Send() at sushi.Web.SendMail.btnSubmit_Click(Object sender, ImageClickEventArgs e)

出现这个问题?
[/Quote]
真拿你没办法,直路不走,非要绕弯。
leejelen 2010-01-09
  • 打赏
  • 举报
回复
System.Runtime.InteropServices.COMException (0x80040220): The "SendUsing" configuration value is invalid. at CDO.MessageClass.Send() at sushi.Web.SendMail.btnSubmit_Click(Object sender, ImageClickEventArgs e)

出现这个问题?
wrq147 2010-01-09
  • 打赏
  • 举报
回复
在C:\WINDOWS\system32\下有个叫cdosys.dll的动态链接库文件,将它复制出来,并在你的程序中引用它
CDO.Message对象:
CDO.Message emailMsg = new Message();
emailMsg.Form:发件人邮件地址
emailMsg.To:收件人邮件地址
emailMsg.Subject:邮件标题
emailMsg.HtmlBody:邮件主体,比如"<html><body>" + "邮件信息" + "</body></html>";
emailMsg.AddAttachment():添加附件
emailMsg.Send():发送邮件
xichenxin 2010-01-09
  • 打赏
  • 举报
回复
回家看看
周公 2010-01-09
  • 打赏
  • 举报
回复
如果你用的是.net2.0以上版本,建议你使用.net中那个类库直接支持的方法而不是.net1.1中的办法,只要配置正确了并且邮件服务器支持就没有问题。
不要使用什么所谓的组件,如果部署服务器上没有安装或者注册OCX,你就傻眼了。
leejelen 2010-01-09
  • 打赏
  • 举报
回复
3楼的.net自带的,我要的是cdo.message是系统自带的,不一样啊,大哥!
周公 2010-01-09
  • 打赏
  • 举报
回复
.net类库中发送电子邮件的方法总结
发送电子邮件是许多需要用户注册的网站的通用功能,通过正则表达式我们可以过滤掉不符合电子邮件格式的输入,但是仍没有办法确保用户填写的电子邮件地址一定是他本人真实有效的电子邮件地址,通常验证电子邮件真实有效的办法是:当用户填写的注册资料经过网站初步格式验证之后,用户并不能利用此帐号登录,系统会向用户注册时填写的电子邮件地址发送一封电子邮件,邮件中给出一个链接,只有当用户点击了这个链接之后才能登录到网站,如果用户填写的电子邮件地址不是真实有效的或者不是他本人的,就不会收到这封电子邮件,这样仍然不能登录,这一步一般称之为电子邮件激活。在.net类库中有两种发送电子邮件的方式,一种是在.net2.0以下版本中的做法,一种是.net2.0以上版本的做法。下面分别介绍这两种办法。
xenophane 2010-01-09
  • 打赏
  • 举报
回复
3楼的就可以, .Net本身有个邮件类
System.Net.Mail.MailMessage
leejelen 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jshi123 的回复:]
探针是用来看asp环境的,.net只要有类库什么都能用,不要急,不要慌 。。。
[/Quote]

那个空间不支持jmail啊,急啊,早上12点之前就要搞定了!
现在换cdo.message,谁有代码啊,发来看看哈!感激!
jshi123 2010-01-09
  • 打赏
  • 举报
回复
探针是用来看asp环境的,.net只要有类库什么都能用,不要急,不要慌 。。。
leejelen 2010-01-09
  • 打赏
  • 举报
回复
发现只支持cdo.message的发邮件服务器,谁提供下步骤和代码啊,急,谢谢啦!
max_userid 2010-01-09
  • 打赏
  • 举报
回复
jmail貌似不支持ssl,Gmail用不了,楼主还是找别的吧。
加载更多回复(12)

62,254

社区成员

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

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

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

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