My Opera is closing 3rd of March

NAM GIÀ

CHÚ Ý: BLOG NAM GIÀ ĐÃ CHUYỂN SANG ĐỊA CHỈ http://namdh.wordpress.com

Dùng SmtpAppender trong Log4net với Gmail

SmtpAppender được dùng khi bạn muốn tự động gửi thông tin vào email, để làm điều này bạn cần có một máy chủ SMTP, tuy nhiên bạn cung có thể dùng máy chủ SMTP có sẵn của dịch vụ Gmail. Vấn đề duy nhất là SmtpAppender không hỗ trợ SSL, vì vậy bạn sẽ cần làm một số thứ để dùng được nó.

Cách làm ở đây là tôi viết một lớp thừa kế từ SmtpAppender, tôi đặt tên là SmtpSslAppender, trong đó tôi sẽ override lại hàm SendEmail có trong lớp cha, và lớp này cũng có thêm 1 thuộc tính là EnableSsl, nếu đặt nó là true (mặc nhiên) thì các thao tác gửi thư sẽ được thực hiện thông qua kết nối SSL.
Nội dung lớp SmtpSslAppender như sau:
Imports System.Net.Mail

Public Class SmtpSslAppender
    Inherits log4net.Appender.SmtpAppender

    Private m_enableSsl As Boolean = True

    Public Property EnableSsl() As Boolean
        Get
            Return m_enableSsl
        End Get
        Set(ByVal value As Boolean)
            Me.m_enableSsl = value
        End Set
    End Property

    Protected Overrides Sub SendEmail(ByVal messageBody As String)
        Dim smtpClient As New SmtpClient()
        If SmtpHost IsNot Nothing And SmtpHost.Length > 0 Then
            smtpClient.Host = SmtpHost
        End If

        smtpClient.Port = Port
        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network
        smtpClient.EnableSsl = EnableSsl

        If Authentication = SmtpAuthentication.Basic Then
            smtpClient.Credentials = New System.Net.NetworkCredential(Username, Password)
        ElseIf Authentication = SmtpAuthentication.Ntlm Then
            smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
        End If

        Dim mailMessage As New MailMessage()
        mailMessage.Body = messageBody
        mailMessage.From = New MailAddress(From)
        mailMessage.To.Add([To])
        mailMessage.Subject = Subject
        mailMessage.Priority = Priority

        smtpClient.Send(mailMessage)
    End Sub

End Class


Để sử dụng, bạn viết file cấu hình cho log4net như sau:
<log4net>
	<appender name="SmtpSslAppender" type="MyExp.SmtpSslAppender">
		<to value="zyx@gmail.com" />
		<from value="zyx@gmail.com" />
		<subject value="<SUBJECT>" />
		<smtpHost value="smtp.gmail.com" />
		<bufferSize value="100" />
		<port value="587" />
		<lossy value="false" />
		<authentication value="Basic" />
		<userName value="zyx@gmail.com" />
		<password value="password here" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
		</layout>
	</appender>
	<root>
		<level value="DEBUG" />
		<appender-ref ref="SmtpSslAppender" />
	</root>
</log4net>


Trong đó, MyExp là tên root namespace. Khi dùng nhớ đặt các thông số cho chính xác là chạy ngon lành smile

Dùng WebBrowser control để tạo báo cáoChương trình Android đầu tiên: Giải phương trình bậc 2

February 2014
M T W T F S S
January 2014March 2014
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28