0086 | Postfix + DomainKeys + DKIM
เป็นการติดตั้ง mail server สำหรับส่ง bulk mail ปริมาณมหาศาล
(พยายามทำให้ถึงวันละห้าแสนฉบับอยู่)
แต่ย้ำก่อนนะครับว่าต่อให้ใช้วิธีนี้ แล้วส่ง mail ที่เป็น spam ยังไงก็ติด blacklist อยู่ดี ไม่มีประโยชน์
วิธีการติดตั้งด้านล่างเป็นวิธีสำหรับ OS เปล่าๆ หรือไม่มี control panel เท่านั้นครับ
หากมี control panel อยู่จะไม่สามารถใช้งานได้ เพราะมันตีกัน
ส่วนไฟล์ มันมีแต่ของ centos 5 x86_64 นะครับ OS อื่นหนูไม่รู้ววว์
dkim-milter-2.8.3-2.el5.x86_64.rpm
dk-milter-1.0.2-0.x86_64.rpm
prepare yourself!
ก่อนอื่น ลบ MTA ทั้งหมดที่มีทิ้ง ไม่ว่าจะเป็น sendmail postfix exim qmail อะไรก็ตามแต่
แล้วลงแค่ postfix ใหม่ๆ เลย
yum install postfix sendmail
chkconfig sendmail off
chkconfig postfix on
service sendmail stop
service postfix start
rpm -Uvh dk-milter-1.0.2-0.x86_64.rpm dkim-milter-2.8.3-2.el5.x86_64.rpm
usermod -g 89 dkim-milter
chkconfig dkim-milter on
chkconfig dk-milter on
chown postfix.postfix /usr/sbin/dkim-filter
chown postfix -R /etc/mail/dkim-milter/keys
rm -f /var/run/dkim-milter/dkim-milter.sock
แก้ config !!!
เปิดไฟล์ /etc/mail/dkim-milter/dkim-filter.conf
หา # AuthservID example.com
เอา comment ออก แล้วแก้ example.com เป็นชื่อ domain เช่น yourdomain.com
แล้วเลื่อนลงมาอีกหน่อย หา # Domain example.com
เอา comment ออก ลบ example.com ทิ้ง แล้วใส่รายการ domain ที่ต้องการให้ sign DKIM (ถ้ามีหลาย domain ก็ใส่ , คั่น)
เลื่อนลงมาอีก หา Selector my-selector-name
แก้ my-selector-name เป็น default
เสร็จไป 1 ไฟล์ (ยังเหลืออีกบาน ฮาๆ)
ทีนี้… เปิดไฟล์ /etc/mail/dkim-milter/keys/keylist
ใส่ข้อมูลตามนี้
*@example.com:example.com:/etc/dkim-milter/example.com/default
อย่าลืมแก้ example.com เป็นชื่อ domain ที่ต้องการ sign ด้วยนะครับ
ถ้ามีหลาย domain ก็ใส่บรรทัดละ 1 domain
เปิดไฟล์ /etc/sysconfig/dkim-milter
เอา comment หน้า บรรทัด # EXTRA_FLAGS=-bs ออก แล้วก็เซฟ
เปิดไฟล์ /etc/init.d/dkim-milter
หาบรรทัดที่เขียนว่า user=${name} (ปกติจะอยู่บรรทัดที่ 19)
แก้เป็น user=postfix
เปิดไฟล์ /etc/sysconfig/dk-milter
#USER=”dk-milt”
#PORT=”local:/var/run/dk-milter/dk.sock”
#SIGNING_DOMAIN=”example.com”
#SELECTOR_NAME=”default”
#KEYFILE=”/etc/mail/domainkeys/dk_${SIGNING_DOMAIN}.pem”
#SIGNER=yes
#VERIFIER=yes
#CANON=simple
#REJECTION=”bad=r,dns=t,int=t,no=a,miss=r”
#EXTRA_ARGS=”-h -l -D”
#MILTER_GROUP=”mail”
เอา comment ออกให้หมด
แก้ตัวแดงบรรทัด SIGNING_DOMAIN เป็นโดเมนหลักที่ต้องการ sign
แก้ตัวแดงบรรทัด SELECTOR_NAME เป็น private
แก้ตัวแดงบรรทัด MILTER_GROUP เป็น postfix
DKIM sign
มา gen key สำหรับ sign DKIM กัน
mkdir -p /etc/dkim-milter/example.com/
cd /etc/dkim-milter/example.com/
dkim-genkey -d example.com
mv default.private default
chown postfix -R /etc/dkim-milter/
เหมือนเดิมนะครับ มีกี่โดเมนก็แก้ชื่อโดเมนทำให้ครบด้วย
ทีนี้หลังจาก gen แล้ว ใน folder ของแต่ละโดเมนจะมี file ชื่อ default.txt อยู่
ข้างในจะเป็น DNS record ที่เราต้องเอาไปเพิ่มเข้าใน DNS ของ domain นั้นๆ
สั่ง cat ดูได้เลยครับ (ถ้าใช้ bind ก็ก๊อปแปะใน zone file ได้เลย)
DomainKeys sign
มา gen key สำหรับ sign DomainKeys กัน
cd /etc/mail/domainkeys/
/usr/share/doc/dk-milter-1.0.2/gentxt.sh private example.com
mv private.private dk_example.com.pem
แก้จุดสุดท้าย
เปิดไฟล์ /etc/postfix/main.cf
ลงมาล่างสุดของไฟล์ เพิ่มไอ้นี่ลงไป
smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock unix:/var/run/dk-milter/dk.sock
non_smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock unix:/var/run/dk-milter/dk.sock
เซฟ ปิด แล้วสั่ง
rm -f /var/run/dkim-milter/dkim-milter.sock
chown postfix -R /var/run/dkim-milter
service dkim-milter restart
service dk-milter restart
service postfix restart
ฝั่ง server เรียบร้อย ทีนี้ก็ client ถ้าจะส่ง mail..
มีข้อแนะนำในการส่งประมาณนี้
- reverse dns ของ ip ของ mail server ต้องชี้มายัง domain เดียวกันกับที่ใช้ส่ง
- ทำ SPF Record ให้เรียบร้อย
- DomainKeys + DKIM ตามวิธีด้านบน
- ในเนื้อหา mail ต้องมีระบุข้อความว่า ให้ยกเลิกการรับข่าวสาร email ได้ที่ไหน
- ใส่ header List-Unsubscribe ที่ชี้ไปยัง URL หรือ email ที่สามารถส่งไปขอยกเลิกการรับ mail ได้
- การขอยกเลิกการรับข่าวสาร อนุญาตให้มีได้แค่ปุ่มยืนยันการยกเลิกเท่านั้น
- ตั้ง Sender กับ Return-Path ให้รับ mail ได้ เพื่อไว้รอรับ mail ตีกลับ
- ลบ email ที่ถูกตีกลับออกจากรายการ mail ที่ใช้ส่งตลอดเวลา
- ไม่ส่ง mail เนื้อหาเดียวกันซ้ำๆ กัน
- [สำหรับส่งเข้า yahoo] http://help.yahoo.com/l/us/yahoo/mail/postmaster/forms_index.html เข้าไปแล้วเลือก Yahoo! Mail Bulk Sender Form กรอกให้ครบ
Tags: bulk mail, dkim, domainkeys, postfix
สุดยอดเลยว่ะนาย นับถือ ๆ
ว่าแต่ถ้าไม่ได้ลง da ก็คงลำบากแหละ ไม่รู้จะเพิ่มโดเมนอะไรยังไงดี
ทำมือไม่เป็น ^^!
สุดยอดเลยว่ะนาย นับถือ ๆ
ว่าแต่ถ้าไม่ได้ลง da ก็คงลำบากแหละ ไม่รู้จะเพิ่มโดเมนอะไรยังไงดี
ทำมือไม่เป็น ^^!
ยอดเยี่ยมมากเลยครับ
สุดยอดเลยครับ มีประโยชน์อย่างยิ่ง
สุดยอดเลยครับ มีประโยชน์อย่างยิ่ง
มะวานนั่งทำ เจอ ปัญหานิดนึงว่า
warning: connect to Milter service unix:/var/run/dkim-milter/dkim-milter.sock: Permission denied
แต่พอปิด SELinux ก็หายจ้า…
มะวานนั่งทำ เจอ ปัญหานิดนึงว่า
warning: connect to Milter service unix:/var/run/dkim-milter/dkim-milter.sock: Permission denied
แต่พอปิด SELinux ก็หายจ้า…