0

asp.net でメールを送信する方法は知っていますが、サイトから詳細を抽出してメール本文に入れる方法がわかりません。そこにショッピング カート サイトを構築しています。請求書をユーザーにメールで送信したいと考えています。親切に助けてください。

4

2 に答える 2

0

メッセージ (購入 ID、金額、数量など) に関する文字列を作成するには、新しい行に「\n」を使用し、4 つのスペース (タブ) を配置して「\t」を使用します。

次に、次のようなメール関数で文字列を送信します。

try
    {

        MailMessage mail = new MailMessage();

        //set the addresses
        mail.From = new MailAddress("username@domain_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());
    }

必要に応じて using System.Net.Mail を追加することを忘れないでください。

于 2012-04-28T23:20:02.333 に答える
0

次のコードを使用して請求書を生成できます。

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);
     }
 }
于 2013-11-26T07:08:24.120 に答える