博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在asp.net 2.0中发送邮件

Posted on 2007-01-03 18:38  webabcd  阅读(7222)  评论(43编辑  收藏
[源码下载]


在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="attachment" 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并设置其属性
        MailMessage mm = new MailMessage(emailfrom.Text, emailto.Text);

        mm.Subject 
= subject.Text;
        mm.Body 
= body.Text;
        
// HTML格式
        mm.IsBodyHtml = true;

        
// 添加附件
        mm.Attachments.Add(new Attachment(attachment.PostedFile.InputStream, attachment.FileName));

        
/*其他如抄送、优先级之类的都可以在MailMessage类的属性中设置*/

4、实例化一个SmtpClient,调用其Send方法,参数为MailMessage对象
        SmtpClient sc = new SmtpClient();

        
// 编程方式设置smtp(不用web.config)
        
// sc.Host = "";
        
// sc.Port = 25;
        
// sc.Credentials = new NetworkCredential("username", "password");

        
try
        
{
            sc.Send(mm);
            Response.Write(
"ok");
        }

        
catch (Exception ex)
        
{
            
// 与smtp相关的错误
            if (ex is SmtpException)
            
{
                
// ex.ToString();
                Response.Write("smtp发信失败");
            }

            
else
            
{
                Response.Write(ex.ToString());
            }

        }


OK
[源码下载]