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">
Adınız* :</td>
<td class="style7">
Soyadınız* :</td>
<td class="style3">
Atanızın adı*</td>
</tr>
<tr>
<td class="style6">
<asp:TextBox ID="TextBox2" runat="server" Width="182px"></asp:TextBox>
</td>
<td class="style7">
<asp:TextBox ID="TextBox3" runat="server" Width="182px"></asp:TextBox>
</td>
<td class="style3">
<asp:TextBox ID="TextBox4" runat="server" Width="182px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style6">
</td>
<td class="style7">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style6">
Ölkə*: </td>
<td class="style7">
Şəhər*: </td>
<td class="style3">
</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">
</td>
</tr>
<tr>
<td class="style6">
</td>
<td class="style7">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style6">
Ünvan*:</td>
<td class="style7">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style4" colspan="3">
<asp:TextBox ID="TextBox7" runat="server" Width="602px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style6">
</td>
<td class="style7">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style6">
Telefon kodu və nömrəsi*:</td>
<td class="style7">
Email*:</td>
<td class="style3">
</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">
</td>
</tr>
<tr>
<td class="style6">
</td>
<td class="style7">
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style6">
Yaşınız*:</td>
<td class="style7">
Cinsiniz*:</td>
<td class="style3">
</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">
</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 - 将输入数据作为纯文本电子邮件发送的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Chrome 浏览器在 ASP.Net 中停止将输入类型自动填充为密码