ASP.NET - 将输入数据作为纯文本电子邮件发送

Posted

技术标签:

【中文标题】ASP.NET - 将输入数据作为纯文本电子邮件发送【英文标题】:ASP.NET - Send input data as plain text email 【发布时间】:2012-04-26 07:10:44 【问题描述】:

我有一个 aspx 表单,里面有一堆文本框、下拉列表、复选框。当此输入控件充满必要的数据时,我想将此信息作为电子邮件发送。假设我有一个包含申请人姓名的文本框,一个列出职业的下拉列表等等。所以我希望电子邮件包含与

相同的信息
 Name:Anthony Brian 
 Occupation: Surgeon
 ......

我该怎么做?

编辑:如果有人感兴趣,这是 aspx:

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="WriteMail.aspx.cs"     
 Inherits="WriteMail" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0        
 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <title></title>
 <style type="text/css">
    .style2
    
        width: 203px;
    
    .style3
    
        width: 226px;
    
    .style4
    
    
    .style6
    
        width: 198px;
    
    .style7
    
        width: 204px;
    
    </style>
    </head>
    <body>
   <form id="form1" runat="server">
   <div align="center" style="font-weight: bold; font-family: tahoma; font-size: 12px;
    margin-bottom: 10px;">
    Hörmətli istifadəçi!</div>
   <div align="center" style="font-family: tahoma; font-size: 12px;margin-bottom:   
   30px;">
    <span class="style2"><span class="style10">Azərbaycan Respublikası Dövlət Sosial  
   Müdafiə
        Fonduna məktub göndərmək ücün aşağıdakı formanı doldurun.(* - vacib sahələr)  
   </span></span></div>
  <div id="main">
    <table>
        <tr>
            <td class="style6">
                &nbsp;Adınız* :</td>
            <td class="style7">
                Soyadınız* :</td>
            <td class="style3">
                &nbsp;Atanızın adı*</td>
        </tr>

        <tr>
            <td class="style6">
                <asp:TextBox ID="TextBox2" runat="server" Width="182px"></asp:TextBox>
            </td>
            <td class="style7">
              &nbsp;<asp:TextBox ID="TextBox3" runat="server" Width="182px"></asp:TextBox>
            </td>
            <td class="style3">
                &nbsp;<asp:TextBox ID="TextBox4" runat="server" Width="182px"></asp:TextBox>
            </td>
        </tr>

        <tr>
            <td class="style6">
                &nbsp;</td>
            <td class="style7">
                &nbsp;</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                &nbsp;Ölkə*:&nbsp;</td>
            <td class="style7">
              &nbsp;Şəhər*:&nbsp;</td>
            <td class="style3">
                &nbsp;&nbsp; &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                <asp:TextBox ID="TextBox5" runat="server" Width="182px"></asp:TextBox>
            </td>
            <td class="style7">
                <asp:TextBox ID="TextBox6" runat="server" Width="182px"></asp:TextBox>
            </td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                &nbsp;</td>
            <td class="style7">
                &nbsp;</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                &nbsp;Ünvan*:</td>
            <td class="style7">
                &nbsp;</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style4" colspan="3">
                <asp:TextBox ID="TextBox7" runat="server" Width="602px"></asp:TextBox>
            </td>
        </tr>

        <tr>
            <td class="style6">
                &nbsp;</td>
            <td class="style7">
                &nbsp;</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                Telefon kodu və nömrəsi*:</td>
            <td class="style7">
                Email*:</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                <asp:TextBox ID="TextBox8" runat="server" Width="182px"></asp:TextBox>
            </td>
            <td class="style7">
                <asp:TextBox ID="TextBox9" runat="server" Width="182px"></asp:TextBox>
            </td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                &nbsp;</td>
            <td class="style7">
                &nbsp;</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                Yaşınız*:</td>
            <td class="style7">
                Cinsiniz*:</td>
            <td class="style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="style6">
                <asp:TextBox ID="TextBox10" runat="server" Width="66px"></asp:TextBox>
            </td>
            <td class="style7">
                <asp:CheckBoxList ID="CheckBoxList1" runat="server" 
                    RepeatDirection="Horizontal">
                    <asp:ListItem Value="1">Kişi</asp:ListItem>
                    <asp:ListItem Value="2">Qadın</asp:ListItem>
                </asp:CheckBoxList>
            </td>
            <td class="style3">
                &nbsp;</td>
        </tr>

    </table>
</div>
</form>

【问题讨论】:

请提供 aspx 页面标记,显示您的控件是如何展开的。无论是在网格中还是在表格中......类似的东西...... 【参考方案1】:

这是一个 c# sn-p,用于从您的代码隐藏文件中发送电子邮件:

public bool SendEmail(string to, string subject, string body) // 从 Web.config 获取 SMTP 服务器的主机名 字符串主机名 = ConfigurationManager.AppSettings["SMTP"]; // 示例:添加 // 到 Web.config 的部分 字符串用户 = ConfigurationManager.AppSettings["SMTP_user"]; 字符串 pwd = ConfigurationManager.AppSettings["SMTP_pwd"]; MailMessage 邮件 = 新的 MailMessage(); mail.From = new MailAddress("your@email.com", "Name"); mail.To.Add(to); mail.Subject = 主题; 邮件.正文 = 正文; 邮件.IsBodyHtml = 假; SmtpClient 客户端 = 新 SmtpClient(主机名); client.Credentials = new System.Net.NetworkCredential(user,pwd); 尝试 客户端.发送(邮件); 返回真; 捕捉(异常) 返回假;

祝你好运;)

【讨论】:

【参考方案2】:

您可以使用以下代码从您的 aspx 页面获取详细信息并将其作为电子邮件正文发送。

public string GetHtmlBody()

    String strHTMLBody = String.Empty;


    if (TextBox2.Text.ToString().Trim() != "")
    
        strHTMLBody = strHTMLBody + "Name : " + TextBox2.Text.ToString().Trim() + "<br/>"; 
    
    if (TextBox3.Text.ToString().Trim() != "")
    
        strHTMLBody = strHTMLBody + "Surname : " + TextBox3.Text.ToString().Trim() + "<br/>";
    
    if (TextBox2.Text.ToString().Trim() != "")
    
        strHTMLBody = strHTMLBody + "Occupation : " + TextBox4.Text.ToString().Trim();
    

    // like wise you can get other details in same way in string variable.

    return strHTMLBody;


public bool SendEmail(string to, string subject)


    // get the hostname of the SMTP server from Web.config
    string hostname = ConfigurationManager.AppSettings["SMTP"];
    // Example: add 
    //          to the  section of Web.config
    string user = ConfigurationManager.AppSettings["SMTP_user"];
    string pwd = ConfigurationManager.AppSettings["SMTP_pwd"];

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("your@email.com", "Name");
    mail.To.Add(to);
    mail.Subject = subject;
    mail.Body = GetHtmlBody();
    mail.IsBodyHtml = true ;
    SmtpClient client = new SmtpClient(hostname);
    client.Credentials = new System.Net.NetworkCredential(user, pwd);
    try
    
        client.Send(mail);
        return true;
    
    catch (Exception)
    
        return false;
    


希望这对你有所帮助……祝你编码愉快……

【讨论】:

以上是关于ASP.NET - 将输入数据作为纯文本电子邮件发送的主要内容,如果未能解决你的问题,请参考以下文章

从动态创建的文本字段回发一个值 [ASP.net]

如何使用 Chrome 浏览器在 ASP.Net 中停止将输入类型自动填充为密码

我是不是必须手动将 asp.net 4 电子邮件中的信息输入 MS 数据库?

通过电子邮件将 Google 文档作为纯文本附件发送

ASP.NET MVC:返回纯文本文件以从控制器方法下载

Rails - 邮件,将正文作为纯文本获取