将ASP.Net System.Net.Mail设置移动到Web.config

时间:2012-11-28 16:24:55

标签: asp.net vb.net email web-config settings

我们正在使用此编码从ASP.Net代码隐藏的Vb.Net文件发送电子邮件。

是否可以将任何此编码放在Web.config文件中?

Protected Sub EmailStudentList()

    ' Get the rendered HTML.
    '-----------------------
    Dim SB As New StringBuilder()
    Dim SW As New StringWriter(SB)
    Dim htmlTW As New HtmlTextWriter(SW)

    GridViewSummary.RenderControl(htmlTW)

    ' Get the HTML into a string.
    ' This will be used in the body of the email report.
    '---------------------------------------------------
    Dim dataGridHTML As String = SB.ToString()

    Dim SmtpServer As New SmtpClient()
    SmtpServer.Credentials = New Net.NetworkCredential("ourEmailUsername@gmail.com", "ourPassword")
    SmtpServer.Port = 587
    SmtpServer.Host = "smtp.gmail.com"
    SmtpServer.EnableSsl = True

    ObjMailMessage = New MailMessage()

    Try
        ObjMailMessage.From = New MailAddress("ourEmail@gmail.com", "Some text is here.", System.Text.Encoding.UTF8)
        ObjMailMessage.To.Add(New MailAddress("BoardOfDirectors@gmail.com", "Emad-ud-deen", System.Text.Encoding.UTF8))
        ObjMailMessage.Subject = "List of enrolled students for the board of directors"
        ObjMailMessage.Body = dataGridHTML
        ObjMailMessage.IsBodyHtml = True
        ObjMailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure

        SmtpServer.Send(ObjMailMessage)

    Catch ex As Exception
        MsgBox(ex.ToString())
    End Try
End Sub

3 个答案:

答案 0 :(得分:12)

  <system.net>
    <mailSettings>
      <smtp from="ourEmail@gmail.com">
        <network defaultCredentials="false" 
             userName="ourEmailUsername@gmail.com" 
             password="ourPassword" 
             host="smtp.gmail.com" 
             enableSsl="true" 
             port="587"/>
      </smtp>
    </mailSettings>
  </system.net>

答案 1 :(得分:2)

您不能在配置文件中放置“代码”,但可以移动许多设置。

http://msdn.microsoft.com/en-us/library/w355a94k.aspx

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="network">
        <network
          host="localhost"
          port="25"
          defaultCredentials="true"
        />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

答案 2 :(得分:2)

我已将其中一些项目放在web.config`中。

<system.net>
    <mailSettings>
        <smtp>
            <network host="<<Host IP Address>>" port="<<Host Port Number>>" userName="" password=""/>
        </smtp>
    </mailSettings>
    <defaultProxy useDefaultCredentials="false">
        <proxy bypassonlocal="true" usesystemdefault="false"/>
    </defaultProxy>
</system.net>

以下链接也可能有所帮助:

Element (Network Settings)