在asp.net 2.0中发送邮件


作者:webabcd


1、在web.config中的<configuration>内加入如下配置信息(host—smtp服务地址;port—端口号;userName—用户名;password—密码。请自行修改)。
<system.net>
        <mailSettings>

            <smtp>
                <network host="smtpserver" port="25" userName="uid" password="pwd" />
            </smtp>

        </mailSettings>
    </system.net>

2、aspx页面HTML代码
 
<table border="0">
                <tr>
                        <td>
                                发件人
                        </td>
                        <td>
                                <asp:TextBox runat="server" ID="emailfrom"></asp:TextBox>
                        </td>
                </tr>
                <tr>
                        <td>
                                收件人
                        </td>
                        <td>
                                <asp:TextBox runat="server" ID="emailto"></asp:TextBox>
                        </td>
                </tr>
                <tr>
                        <td>
                                主题
                        </td>
                        <td>
                                <asp:TextBox runat="server" ID="subject"></asp:TextBox>
                        </td>
                </tr>
                <tr>
                        <td>
                                附件
                        </td>
                        <td>
                                <asp:FileUpload ID="p_w_upload" runat="server" />
                        </td>
                </tr>
                <tr>
                        <td>
                                内容
                        </td>
                        <td>
                                <asp:TextBox runat="server" ID="body" TextMode="MultiLine" Columns="50" Rows="10"></asp:TextBox>
                        </td>
                </tr>
                <tr>
                        <td colspan="2" align="center">
                                <asp:Button runat="server" ID="btnSend" Text="发送" OnClick="btnSend_Click" />
                        </td>
                </tr>
        </table>
 
3、实例化一个MailMessage并设置其属性
在asp.net 2.0中发送邮件_职场MailMessage mm = new MailMessage(emailfrom.Text, emailto.Text);
在asp.net 2.0中发送邮件_职场
在asp.net 2.0中发送邮件_职场                mm.Subject = subject.Text;
在asp.net 2.0中发送邮件_职场                mm.Body = body.Text;
在asp.net 2.0中发送邮件_职场                // HTML格式
在asp.net 2.0中发送邮件_职场                mm.IsBodyHtml = true;
在asp.net 2.0中发送邮件_职场
在asp.net 2.0中发送邮件_职场                // 添加附件
在asp.net 2.0中发送邮件_职场                mm.Attachments.Add(new Attachment(p_w_upload.PostedFile.InputStream, p_w_upload.FileName));
在asp.net 2.0中发送邮件_职场
在asp.net 2.0中发送邮件_职场                /*其他如抄送、优先级之类的都可以在MailMessage类的属性中设置*/
 
4、实例化一个SmtpClient,调用其Send方法,参数为MailMessage对象
在asp.net 2.0中发送邮件_职场SmtpClient sc = new SmtpClient();
在asp.net 2.0中发送邮件_职场
在asp.net 2.0中发送邮件_职场                // 编程方式设置smtp(不用web.config)
在asp.net 2.0中发送邮件_职场                // sc.Host = "";
在asp.net 2.0中发送邮件_职场                // sc.Port = 25;
在asp.net 2.0中发送邮件_职场                // sc.Credentials = new NetworkCredential("username", "password");
在asp.net 2.0中发送邮件_职场
在asp.net 2.0中发送邮件_职场                try
在asp.net 2.0中发送邮件_职场                {
在asp.net 2.0中发送邮件_职场                        sc.Send(mm);
在asp.net 2.0中发送邮件_职场                        Response.Write("ok");
在asp.net 2.0中发送邮件_职场                }
在asp.net 2.0中发送邮件_职场                catch (Exception ex)
在asp.net 2.0中发送邮件_职场                {
在asp.net 2.0中发送邮件_职场                        // 与smtp相关的错误
在asp.net 2.0中发送邮件_职场                        if (ex is SmtpException)
在asp.net 2.0中发送邮件_职场                        {
在asp.net 2.0中发送邮件_职场                                // ex.ToString();
在asp.net 2.0中发送邮件_职场                                Response.Write("smtp发信失败");
在asp.net 2.0中发送邮件_职场                        }
在asp.net 2.0中发送邮件_职场                        else
在asp.net 2.0中发送邮件_职场                        {
在asp.net 2.0中发送邮件_职场                                Response.Write(ex.ToString());
在asp.net 2.0中发送邮件_职场                        }
在asp.net 2.0中发送邮件_职场                }
 

OK