青格儿 发布留言 2008-6-12 16:29 动态发送邮件给用户,这效果怎么做?系统中,当用户把密码忘了,要通过邮箱找回.当他点通过邮箱找回这按钮时,如何让系统自动发邮件到他信箱里?
也就是系统怎么自己写个文件发给用户,动态创建文件并发送给用户。这怎么做?请大家帮帮我,最好能给我个实例,我先在这谢谢了。lqw 发布留言 2008-6-12 17:29 一、首先需要配置web.config文件:
port="25" defaultCredentials="false"/>
二、然后编写发送邮件的函数:
//// /// /// 收件人地址。如:receiver@163.com /// 邮件标题 /// 邮件正文 /// 邮件发送人地址。如:sender@163.com /// public bool MySendMail(string mailto, string mailsubject, string mailbody, string mailFrom) { try { //邮件发送人地址 System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(mailFrom); //如test@163.com,初步测试,用test@sina.com不行,用163的邮件服务器,就必须用163邮箱的用户名 //收件人地址 System.Net.Mail.MailAddress to = new System.Net.Mail.MailAddress(mailto);//如test@tom.com System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(from, to); mail.Subject = mailsubject; mail.Body = mailbody; //以下设置服务器 System.Net.Mail.SmtpClient mySmth = new System.Net.Mail.SmtpClient(); mySmth.Send(mail); mail.Dispose(); return true; } catch { return false; } } 三、最后就是对函数的调用了:
//自动发送邮件 string mailSubject = "会员密码"; string mailBody = 正文+数据库里的密码; string mailFrom = ConfigurationManager.AppSettings["SendMail"]; if (MySendMail(this.txtEmail.Text, mailSubject, mailBody, mailFrom)) { ... //发送成功,进行相应处理 } else { ... //发送失败,进行相应处理 return; }
[ 本帖最后由 lqw 于 2008-6-12 17:36 编辑 [/it]]gupiao175 发布留言 2008-6-13 13:49 有没有具体的实例啊,希望好心人发个出来。谢了。几经测试还是不行,可能对这个不够了解,有没有具体的实例啊,希望好心人发个出来。谢了。[em01]青格儿 发布留言 2008-6-13 18:32 string mailFrom = ConfigurationManager.AppSettings["SendMail"];
这个SendMail哪来的?webconfig里没有这个啊
我试了好多次,上网上也查了,跟 你这方法差不多,可是每次结果都是发送失败,这是怎么回事?
[ 本帖最后由 青格儿 于 2008-6-13 19:36 编辑 [/it]]lqw 发布留言 2008-6-14 09:33 在IIS里面你有没有装上那个SMTP邮件服务?青格儿 发布留言 2008-6-14 09:45 我装了,还要设置什么吗?为什么总是发送失败?青格儿 发布留言 2008-6-14 11:10 谢谢了,二楼的朋友,终于测试成功了.
另:再问下,如果我要用我自己的邮件服务器,是不是把host="smtp.163.com"这个改成自己的邮件服务器就行了?那自自己的邮件服务器还要配置什么吗?那都配些什么呢?
三楼的朋友,我来说下我是怎么解决的,希望你的问题也能解决。 我的总是发送失败,我今天又做了一遍,哎,我都不知我做几遍了,呵呵
//这里不能这么写,应写成下面那个用户名@163.com (也就是写全,就可以发送成功了。) port="25" defaultCredentials="false"/>
冰彩虹 发布留言 2008-6-15 00:03 楼上精神可嘉!赞一个青格儿 发布留言 2008-6-15 10:09 呵呵,谢谢夸奖。我觉得这论坛上的人都挺好的,所以我很喜欢和大家一起进步,呵 呵hebingbing 发布留言 2008-6-15 13:42 一直就欣赏青妹妹的求学态度……gupiao175 发布留言 2008-6-16 11:07 楼主的干净十足,值得学习!楼主的干净十足,值得学习![em01] 我继续去测试,如果还不行再上来问。先帮你顶一个![em01]lqw 发布留言 2008-6-16 13:08 是的,只要把host="自己的服务器"就可以了,好像除了126和163这两个需要用户名和密码外其它的邮件服务器是不用的!青格儿 发布留言 2008-6-16 14:07 呵呵,不要夸我了,我都不好意思了。这是我的工作,不是干劲十足啊,是不干不行啊,呵呵
这么说,只有126和163的邮件服务器可用了,装上smtp协议或是需要的一切协议也不行吗?呵呵,我对邮件服务器配置一点不懂。gupiao175 发布留言 2008-6-16 14:35 [em02] 搞了半天还是不董,我把
port="25" defaultCredentials="false"/> 加到WEB。CONFIG里 然后把其他组成一个ASPX文件,可是还是搞不董什么意思!汗![em04] 能不能再说详细点的,我对。NET是个入门汉![em10]gupiao175 发布留言 2008-6-16 14:37 对不起啊,我怎么把密码也发出来了。[em08]lqw 发布留言 2008-6-16 14:40 除了以上做法还可以直接写一个文件不改动web.config也可以代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net.Mail;
public partial class emailSend : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { MailMessage mail = new MailMessage(); mail.To.Add(new MailAddress("qwlin1@163.com","qwlin1"));//别人的邮箱地址 mail.From = new MailAddress("lierlqw@126.com","我的第一封信");//自己的邮箱地址 mail.Subject = "this is a test email."; mail.Body = "this is my test email body"; mail.Priority = MailPriority.High;//邮件的紧急程度 System.Net.Mail.SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential("lierlqw","你的密码"); client.Host = "smtp.126.com";//smtp邮箱地址 client.Send(mail); } catch (System.Net.Mail.SmtpException ex) { Response.Write(ex.Message); }
} }
[ 本帖最后由 lqw 于 2008-6-16 14:43 编辑 [/it]]青格儿 发布留言 2008-6-16 19:10 嗯,对啊,实在不行,用Jmail做也行的。它需要下载。sunyuanfeng 发布留言 2008-6-17 11:32 回复 1# 青格儿 的帖子太有难度的问题了!gupiao175 发布留言 2008-6-17 13:20 如果用组件JMAIL,那这个帖就该发到ASP去了![em02]如果用组件JMAIL,那这个帖就该发到ASP去了![em02] 请教一下,谁知道2楼的方法是具体怎么用的呢?哪些文件组成一个什么文件(ASPX,CS),把详细代码发出来看下,好吗![em02] 非常感谢!gupiao175 发布留言 2008-6-17 13:26 。。。。。。。由于偶是个。NET新手,所以我需要一个完整的文件,包括其文件名及扩展名,不是片段式代码,非常感谢了![em02]
[1] [2] 下一页 特别说明:如网页特效代码中有引用图片文件等,请自己下载到本地调试! |