邮件发送解决方案

来源:互联网 发布:矩阵的秩8个性质证明 编辑:程序博客网 时间:2024/06/05 15:08

邮件发送功能在一般的Web开发中属于比较常见的功能,以前在做jsp开发时,写过这样的简单代码;今天闲着没事,花了我一个下午的时间,用ASP.NET把邮件发送功能实现了一下,还是有些心得,写出来和大家分享。这次的开发环境为VS.NET 2005

    首先简单的看看窗体页面,截图如下:

.NET中邮件的发送

    第一行:发送邮件的地址:控件ID号为Form_Address;

    第二行:接收邮件的地址:控件ID号为To_Adddress;

    第三行:抄送邮件的地址:控件ID号为Copy_Adddress;

    第四行:密送邮件的地址:控件ID号为Secret_Adddress;

    第五行:邮件的主题:控件ID号为Subject;

    第六行:邮件的内容:控件ID号为Content;

    第七行:附件:控件ID号为FileUploadName;后面是发送按钮,代码的的实现在按钮点击代码块中进行。

    这里要特别介绍一下最后一行的FileUpLoad控件,我这里事实上没有使用FileUpLoadweb服务器控件,使用的是html控件,然后把TextBox设置为在服务器运行;今天浪费了一些时间在这上面,因为查msdn,用FileUpLoad控件无法获取到选择的文件的全名,包括完整的路径名和文件名,文件名很容易获取,但路径似乎没有相应的方法。后来只好用html控件代替,可能会有其他方法,懒得去琢磨。

    下面看看具体的实现代码,我把主要的代码贴出来:

        String from = this.From_Address.Text;

        String to = this.To_Address.Text;

        String cc = this.Copy_Address.Text;

        String bcc = this.Secret_Address.Text;

        String subject = this.Subject.Text;

        String content = this.Content.Text;

        String fileName = this.FileUploadName.Value;

        try

        {

            System.Net.Mail.MailMessage myMail = new MailMessage(from, to, subject, content);

            myMail.Priority = MailPriority.Normal;

            myMail.IsBodyHtml=true;

            myMail.ReplyTo = new MailAddress(from, "xxxx"); //邮件回复地址 

 

            //增加抄送和密送

            MailAddress CCAdress = new MailAddress(cc);

            MailAddress BCCAddress = new MailAddress(bcc);

            myMail.CC.Add(CCAdress);

            myMail.Bcc.Add(BCCAddress);

            //增加附件内容

            Attachment attach = new Attachment(fileName);

            myMail.Attachments.Add(attach);

            //发送邮件    

            SmtpClient smtp = new SmtpClient();

            smtp.Host = "smtp.sina.com.cn";

            smtp.Credentials = new NetworkCredential("xxxx@sina.com","xxxx");

 

            smtp.Send(myMail);

            Response.Write("Email Success!");

        }

        catch (Exception err)

        {

            Response.Write(err.ToString());

        }

    从以上代码可以看出,在asp.net中实现发邮件的功能还是很简单的,这个程序基本上实现了主要的邮件功能。但还是需要注意几点,今天在网上看别人写的代码时,都没有提到,很容易出错。

    首先该方法是借助发送方(From)的邮件发送服务来实现的,因此控件Form_Address的邮件地址必须为"xxxx@sina.com""xxxx"为密码;其次smtp.Host = "smtp.sina.com.cn";必须正确,我这里是利用了新浪邮箱的发送服务,当然是可以改成其他邮箱的发送服务的,但Host名必须正确,可以在网上查到的。

    以上代码我在本机上测试过,给sina163gmailhotmail发送邮件,都能收到,但也有小的意外,hotmail邮箱收到邮件是在垃圾邮箱中,其他都在收件夹中。以上只是邮件发送的简单实现,只能起到抛砖引玉的作用了。

原创粉丝点击