2012-07-26 154 views
1

因此我的程序的主要目的是让用户填写我的网站上的请求表单。一旦网页表格填写完毕并且用户按下提交,我已经完成了,程序会将他们填写的信息发送到我的电子邮件中。用电子邮件发送表单遇到问题我的用户填写了

我遇到的两个主要问题是,除非用户附加Web表单不会发送的附件。这很糟糕,因为他们不这样做。所以我需要某种if语句表示程序仍然应该发送带有或不带附件。我希望将日期发送到发送给我自己的电子邮件中。我该如何做到这一点,以便日期发送到我的电子邮件中,第二次用户点击提交按钮。

我添加了下面的大部分代码。

感谢

private string SendMessage(string strTo, string strFrom, string strSubject, string strMessage, string strAttachment, string strBCC) 
{ 
    try 
    { 
     System.Net.Mail.MailMessage mailMsg; 
     string strEmail = ""; 
     string strSmtpClient = ConfigurationManager.AppSettings["SmtpClient"]; 
     string[] arrEmailAddress = strTo.Split(';'); 
     for (int intCtr = 0; intCtr < arrEmailAddress.Length; intCtr++) 
     { 
      strEmail = ""; 
      if (arrEmailAddress[intCtr].ToString().Trim() != "") 
      { 
       strEmail = arrEmailAddress[intCtr].ToString().Trim(); 
       mailMsg = new MailMessage(strFrom, strEmail, strSubject, strMessage); 
       mailMsg.IsBodyHtml = true; 
       if (!strBCC.Trim().Equals(string.Empty)) 
        mailMsg.Bcc.Add(strBCC); 

       /*** Added mail attachment handling ***/  
       System.Net.Mail.Attachment attachment; 
       attachment = new System.Net.Mail.Attachment(strAttachment); 
       mailMsg.Attachments.Add(attachment); 

       SmtpClient smtpClient = new SmtpClient(strSmtpClient); 
       smtpClient.UseDefaultCredentials = true; 
       smtpClient.Port = 25; 

       smtpClient.Send(mailMsg); 
       mailMsg.Dispose(); 
      } 
     } 
     return "Message sent to " + strTo + " at " + DateTime.Now.ToString() + "."; 
    } 
    catch (Exception objEx) 
    { 
     return objEx.Message.ToString(); 
    } 
} 

protected void Submit_Click1(object sender, EventArgs e) 
{ 
    try 
    { 
     /*** Moved from SendMessage function ****/ 
     string strUpLoadDateTime = System.DateTime.Now.ToString("yyyyMMddHHmmss"); 
     string strFileName1 = string.Empty; 
     if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0)) 
     { 
      string strUploadFileName1 = File1.PostedFile.FileName; 
      strFileName1 = strUpLoadDateTime + "." + Path.GetFileNameWithoutExtension(strUploadFileName1) + Path.GetExtension(strUploadFileName1); 
      strFileName1 = strFileName1.Replace("'", ""); 
      string strSaveLocation = Server.MapPath("") + "\\" + strFileName1; 
      File1.PostedFile.SaveAs(strSaveLocation); 
      txtComments.Text = "The file has been uploaded"; 
     } 

     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
System.Text.StringBuilder sb = new System.Text.StringBuilder(); 

sb.Append("<table>"); 
sb.AppendFormat("<tr><td>Request Name:</td><td>{0}</td></tr>", txtBugName.Text.Trim()); 
sb.AppendFormat("<tr><td>Category:</td><td>{0}</td></tr>", ddlModule.SelectedValue); 
sb.AppendFormat("<tr><td>Sub-Category:</td><td>{0}</td></tr>", ddlPage.SelectedValue); 
sb.AppendFormat("<tr><td>Description:</td><td>{0}</td></tr>", txtComments.Text.Trim()); 
sb.AppendFormat("<tr><td>Email is:</td><td>{0}</td></tr>", txtemail.Text.Trim()); 
sb.Append("<table>"); 



     SendMessage(ConfigurationManager.AppSettings["EmailAddrTo"], 
      ConfigurationManager.AppSettings["EmailAddrFrom"], 
      txtBugName.Text.Trim(), 
      strMessage, strSaveLocation, ""); 
    } 
    catch 
    { 
    } 
} 

回答

2

荡涤年方法有点

/// <summary> 
    /// Sends the message. 
    /// </summary> 
    /// <param name="strTo">The STR to.</param> 
    /// <param name="strFrom">The STR from.</param> 
    /// <param name="strSubject">The STR subject.</param> 
    /// <param name="strMessage">The STR message.</param> 
    /// <param name="strAttachment">The STR attachment.</param> 
    /// <param name="strBCC">The STR BCC.</param> 
    /// <returns></returns> 
    private string SendMessage(string strTo, string strFrom, string strSubject, string strMessage, string strAttachment, string strBCC) 
    { 
     try 
     { 
      string strEmail = string.Empty; 
      string strSmtpClient = ConfigurationManager.AppSettings["SmtpClient"]; 
      string[] arrEmailAddress = strTo.Split(';'); 

      foreach (string emailAddress in arrEmailAddress) 
      { 
       if (!string.IsNullOrEmpty(emailAddress.Trim())) 
       { 
        using (System.Net.Mail.MailMessage mailMsg = new MailMessage(strFrom, strEmail, strSubject, strMessage)) 
        { 
         mailMsg.IsBodyHtml = true; 
         if (!string.IsNullOrEmpty(strBCC)) 
          mailMsg.Bcc.Add(strBCC); 

         if (!string.IsNullOrEmpty(strAttachment)) 
         { 
          System.Net.Mail.Attachment attachment; 
          attachment = new System.Net.Mail.Attachment(strAttachment); 
          mailMsg.Attachments.Add(attachment); 
         } 

         using (System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient(strSmtpClient)) 
         { 
          smtpClient.UseDefaultCredentials = true; 
          smtpClient.Port = 25; 
          smtpClient.Send(mailMsg); 
         } 
        } 
       } 
      } 
      return string.Format("Message sent to {0} at {1}.", strTo, DateTime.Now); 
     } 
     catch (Exception ex) 
     { 
      return ex.Message; 
     } 
    } 
+0

谢谢我将尽快回复并尽快回复您 – user1486774 2012-07-26 11:53:15

1

要知道,当你的用户点击:

添加一行创建您的留言:sb.AppendFormat("<tr><td>User clicked submit on:</td><td>{0}</td></tr>", strUpLoadDateTime);在Submit_CLick1

为了防止发送电子邮件失败使得电子附件条件:

if (!string.IsNullOrWhiteSpace(strAttachment)) 
{ 
    /*** Added mail attachment handling ***/  
    System.Net.Mail.Attachment attachment; 
    attachment = new System.Net.Mail.Attachment(strAttachment); 
    mailMsg.Attachments.Add(attachment); 
}