如何在asp.net中通过电子邮件发送邮件
问题描述:
我知道如何在asp.net中发送电子邮件,但我不知道如何从网站中提取详细信息并将其放入电子邮件正文中。我正在那里建立一个购物车网站,以便将发票通过电子邮件发送给用户。请帮助。如何在asp.net中通过电子邮件发送邮件
答
您可以对消息的字符串(如采购编号,金额,数量) 新线使用“\ n”和把4个空格(标签)使用“\ t”
然后你寄的字符串中的邮件功能,如:
try
{
MailMessage mail = new MailMessage();
//set the addresses
mail.From = new MailAddress("[email protected]_name.com");
mail.To.Add(send_to);
//set the content
mail.Subject = "This is an subject";
mail.Body = mail_content;
//send the message
SmtpClient smtp = new SmtpClient("127.0.0.1");
//to authenticate we set the username and password properites on the SmtpClient
smtp.Credentials = new System.Net.NetworkCredential("username", "password");
smtp.Send(mail);
}
catch (Exception ex)
{
//MessageBox.Show(ex.ToString());
}
不要忘记添加使用System.Net.Mail作为它的需要。
答
您可以使用下面的代码来生成发票:
public string GenerateInvoice(Invoice invoiceToGenerate)
{
StringBuilder invoiceHtml = new StringBuilder();
invoiceHtml.Append("<b>INVOICE : ").Append(invoiceToGenerate.InvoiceId.ToString()).Append("</b><br />");
invoiceHtml.Append("<b>DATE : </b>").Append(DateTime.Now.ToShortDateString()).Append("<br />");
invoiceHtml.Append("<b>Invoice Amt :</b> $").Append(invoiceToGenerate.Total.ToString("#.00")).Append("<br />");
invoiceHtml.Append("<br /><b>CUSTOMER CONTACT INFO:</b><br />");
invoiceHtml.Append("<b>Name : </b>").Append(invoiceToGenerate.ContactName).Append("<br />");
invoiceHtml.Append("<b>Phone : </b>").Append(invoiceToGenerate.ContactPhone).Append("<br />");
invoiceHtml.Append("<b>Email : </b>").Append(invoiceToGenerate.ContactEmail).Append("<br />");
invoiceHtml.Append("<b>Address : </b><br />").Append(invoiceToGenerate.ContactAddress1).Append("<br />");
invoiceHtml.Append(invoiceToGenerate.ContactAddress2).Append("<br />");
invoiceHtml.Append(invoiceToGenerate.ContactCity).Append(", ").Append(this.ContactStateProvince).Append(" ").Append(invoiceToGenerate.ContactZip).Append("<br />");
invoiceHtml.Append("<br /><b>SHIP TO:</b><br />");
invoiceHtml.Append("<b>Name : </b>").Append(invoiceToGenerate.ShipToName).Append("<br />");
invoiceHtml.Append("<b>Address : </b><br />").Append(invoiceToGenerate.ShipToAddress1).Append("<br />");
invoiceHtml.Append(invoiceToGenerate.ShipToAddress2).Append("<br />");
invoiceHtml.Append(invoiceToGenerate.ShipToCity).Append(", ").Append(this.ShipToStateProvince).Append(" ").Append(invoiceToGenerate.ShipToZip).Append("<br />");
invoiceHtml.Append("<br /><b>PRODUCTS:</b><br /><table><tr><th>Qty</th><th>Product</th></tr>");
// InvoiceItem should be a collection property which contains list of invoice lines
foreach (InvoiceItem invoiceLine in invoiceToGenerate.InvoiceItems)
{
invoiceHtml.Append("<tr><td>").Append(invoiceLine.Quantity.ToString()).Append("</td><td>").Append(invoiceLine.ProductName).Append("</td></tr>");
}
invoiceHtml.Append("</table>");
return invoiceHtml.ToString();
}
,那么你可以用这个方法把它列入你的电子邮件的身体像:
var mailBody = GenerateInvoice(invoiceObject);
using (MailMessage mailMessage = new MailMessage(fromEmail, toEmail, subject, mailBody))
{
mailMessage.IsBodyHtml = true;
using (SmtpClient smtpClient = new SmtpClient())
{
smtpClient.Host = "127.0.0.1";
smtp.Credentials = new System.Net.NetworkCredential("username", "password");
smtpClient.Send(mailMessage);
}
}
您是否使用窗体或MVC?您是否研究过如何在ASP.NET中处理“表单”数据? – 2012-04-28 23:09:23
你确定你应该建立一个电子商务网站,如果访问表单数据和字符串连接高于你的技能水平...? – 2012-04-28 23:09:47