动态发送邮件给用户,这效果怎么做?
系统中,当用户把密码忘了,要通过邮箱找回.当他点通过邮箱找回这按钮时,如何让系统自动发邮件到他信箱里?也就是系统怎么自己写个文件发给用户,动态创建文件并发送给用户。这怎么做?请大家帮帮我,最好能给我个实例,我先在这谢谢了。
<system.net>
<mailSettings>
<smtp from="Emailname">
<network host="smtp.163.com" userName="用户名" password="密码"
port="25" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
二、然后编写发送邮件的函数:
//// <summary>
/// </summary>
/// <param name="mailto">收件人地址。如:receiver@163.com</param>
/// <param name="mailsubject">邮件标题</param>
/// <param name="mailbody">邮件正文</param>
/// <param name="mailFrom">邮件发送人地址。如:sender@163.com</param>
/// <returns></returns>
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;
}
[[it] 本帖最后由 lqw 于 2008-6-12 17:36 编辑 [/it]]
有没有具体的实例啊,希望好心人发个出来。谢了。
几经测试还是不行,可能对这个不够了解,有没有具体的实例啊,希望好心人发个出来。谢了。[em01] string mailFrom = ConfigurationManager.AppSettings["SendMail"];这个SendMail哪来的?webconfig里没有这个啊
我试了好多次,上网上也查了,跟 你这方法差不多,可是每次结果都是发送失败,这是怎么回事?
[[it] 本帖最后由 青格儿 于 2008-6-13 19:36 编辑 [/it]] 在IIS里面你有没有装上那个SMTP邮件服务? 我装了,还要设置什么吗?为什么总是发送失败? 谢谢了,二楼的朋友,终于测试成功了.
另:再问下,如果我要用我自己的邮件服务器,是不是把host="smtp.163.com"这个改成自己的邮件服务器就行了?那自自己的邮件服务器还要配置什么吗?那都配些什么呢?
三楼的朋友,我来说下我是怎么解决的,希望你的问题也能解决。
我的总是发送失败,我今天又做了一遍,哎,我都不知我做几遍了,呵呵
<system.net>
<mailSettings>
<smtp from="Emailname">//这里不能这么写,应写成下面那个用户名@163.com (也就是写全,就可以发送成功了。)
<network host="smtp.163.com" userName="用户名" password="密码"
port="25" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net> 楼上精神可嘉!赞一个 呵呵,谢谢夸奖。我觉得这论坛上的人都挺好的,所以我很喜欢和大家一起进步,呵 呵 一直就欣赏青妹妹的求学态度……
楼主的干净十足,值得学习!
楼主的干净十足,值得学习![em01]我继续去测试,如果还不行再上来问。先帮你顶一个![em01] 是的,只要把host="自己的服务器"就可以了,好像除了126和163这两个需要用户名和密码外其它的邮件服务器是不用的! 呵呵,不要夸我了,我都不好意思了。这是我的工作,不是干劲十足啊,是不干不行啊,呵呵
这么说,只有126和163的邮件服务器可用了,装上smtp协议或是需要的一切协议也不行吗?呵呵,我对邮件服务器配置一点不懂。 [em02] 搞了半天还是不董,我把
<mailSettings>
<smtp from="xiwang459@163.com">
<network host="smtp.163.com" userName="xiwang459" password="1457wu"
port="25" defaultCredentials="false"/>
</smtp>
</mailSettings>
加到WEB。CONFIG里
然后把其他组成一个ASPX文件,可是还是搞不董什么意思!汗![em04]
能不能再说详细点的,我对。NET是个入门汉![em10] 对不起啊,我怎么把密码也发出来了。[em08] 除了以上做法还可以直接写一个文件不改动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);
}
}
}
[[it] 本帖最后由 lqw 于 2008-6-16 14:43 编辑 [/it]] 嗯,对啊,实在不行,用Jmail做也行的。它需要下载。
回复 1# 青格儿 的帖子
太有难度的问题了!如果用组件JMAIL,那这个帖就该发到ASP去了![em02]
如果用组件JMAIL,那这个帖就该发到ASP去了![em02]请教一下,谁知道2楼的方法是具体怎么用的呢?哪些文件组成一个什么文件(ASPX,CS),把详细代码发出来看下,好吗![em02] 非常感谢!
。。。。。。。
由于偶是个。NET新手,所以我需要一个完整的文件,包括其文件名及扩展名,不是片段式代码,非常感谢了![em02]页:
[1]
2
