Thứ Năm, 31 tháng 7, 2014

Xác thực SPF cho domain gửi email

Trỏ 1 record txt cho domain để chỉ ra rằng các địa chỉ email của domain sẽ gửi email ra từ các smtp server có địa chỉ ip là bao nhiêu.

Ví dụ:
v=spf1 ip4:103.246.222.0/24 ?all

Đối với domain chưa xác thực:

Return-Path: <phong.nd@hanhtranglaptrinh.net>
Received: from smtp222.defaultip.fbems.net ([103.246.222.113])
        by mx.google.com with SMTP id yq7si4958059pac.112.2014.07.31.00.52.13
        for <nguyendoanphonxxxt@gmail.com>;
        Thu, 31 Jul 2014 00:52:14 -0700 (PDT)
Received-SPF: none (google.com: phong.nd@hanhtranglaptrinh.net does not designate permitted sender hosts) client-ip=103.246.222.113;

Đối với domain được xác thực:

Return-Path: <phong.nd@hanhtranglaptrinh.com>
Received: from smtp222.defaultip.fbems.net ([103.246.222.132])
        by mx.google.com with SMTP id g6si4844506pat.154.2014.07.31.00.07.47
        for <nguyendoanphonxxxt@gmail.com>;
        Thu, 31 Jul 2014 00:07:48 -0700 (PDT)
Received-SPF: pass (google.com: domain of phong.nd@hanhtranglaptrinh.com designates 103.246.222.132 as permitted sender) client-ip=103.246.222.132;

Tham khảo: https://support.google.com/a/answer/33786?hl=en
Tham khảo SPF Record Syntax: http://www.openspf.org/SPF_Record_Syntax

Thứ Ba, 29 tháng 7, 2014

Log4net Example

Thêm cấu hình trong App.config hoặc Web.config

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="LogFileName.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="1MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %-8d %rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
</log4net>

Đối với ứng dụng Web thêm đoạn cấu hình vào sự kiện Application_Start:
protected void Application_Start(object sender, EventArgs e)
{
      log4net.Config.XmlConfigurator.Configure();
}

Để sử dụng trong mỗi Class thì khai báo thêm biến thành viên:
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);