การ relay mail ผ่าน server อื่น กรณี ip หลักถูก block

[[B]Admin note[/B]: กระทู้นี้ถูกแยกมาจาก IP: 61.19.24x ส่งเข้า hotmail กันได้มั้ยครับ]
[URL=“https://postmaster.live.com/snds”]

https://postmaster.live.com/snds
ไม่ใช่วิธีแก้ไขนะครับ แต่เป็นเครื่องมือช่วยเราวิเคราะห์เท่านั้น

ตอนนี้ผมพึ่งตัวเองแล้วครับ ระหว่างรอปลดล็อก

แก้ปัญหาเฉพาะหน้าครับ สำหรับ exim directadmin นะครับ

หาไอพีที่ไม่ติดลิส มาทำ mail gateway

exim ปลายทางที่จะทำ gate way เพิ่ม white list ไว้ประมาณนี้ครับ

แก้ /etc/virtual/whitelist_hosts

เพิ่มไอพีที่จะให้ส่งเมล์ได้ (จะไม่ติด authen เพิ่มอาจจะต้องระวังนะครับ เพราะว่ามันจะส่งได้เลย)
เช่นเพิ่ม [COLOR=#ff0000]61.19.246.xx[/COLOR]

restart exim

ที่เครื่องที่ติดแบลกลิส แก้ที่ไฟล์ exim.conf
หาบรรทัดนี้ครับ lookuphost:
คอมเม้นท์แล้วเพิ่มตามด้านล่างครับ
#lookuphost:

driver = dnslookup

domains = ! +local_domains

ignore_target_hosts = 127.0.0.0/8

condition = “${perl{check_limits}}”

transport = remote_smtp

no_more

send_to_gateway:
driver = manualroute
domains = ! +local_domains
condition = "${perl{check_limits}}"
transport = remote_smtp
route_list = * [COLOR=#ff0000]xxx.xxx.xxx.xxx[/COLOR] #<-- แก้ไส่ไอพีที่ทำ mail gateway

แก้ dns ด้วยครับ ตรง txt "v=spf1 a mx ip4:61.19.246.xxx [COLOR=#FF0000]ip4:xxx.xxx.xxx.xx [/COLOR]-all"
เพิ่มไอพีเอาครับ
อาจจะใช้ perl replace ทีเดียวทั้งหมดเลย
ประมาณนี้
perl -pi -e ‘s/mx ip4:61.19.246.xx/mx ip4:61.19.246.xx [COLOR=#ff0000]ip4:xxx.xxx.xxx.xxx[/COLOR]/’ /var/named/*.db

ตรง ~all แนะนำเปลี่ยน -all มันจะเข้มหน่อยครับ ทำให้ปลายทางมั่นใจหน่อยครับ อันนนี้จะหมายถึงว่าถ้า ip ไม่ตรงกับที่ทำ spf ไว้จะไม่รับเลย (ตรงนี้ผมว่าทุกคนน่าจะทำกันนานแล้วมั้งครับอันนี้เบสิค ทางแอดมินสาวสวยไม่น่าตอบมาแบบนี้เลย ปวดหัว)

ส่วนการปลดล็อด เราอาจจะแจ้งเองได้คัรบ เมล์เข้าไปเลย แต่ต้องเช็คทุกเครื่องก่อนนะครับว่าไม่มีส่งสปามแล้ว hotmail ผมเคยเมล์แจ้งอยู่ครับ ไม่ไหวไปกรอกฟอร์มนั้นหรอกครับ เยอะ เพราะว่าปัญหาเราและเขารู้อยู่แล้วว่า manual block

มาแล้วครับวิธีส่งผ่าน gateway แบบใช้ gateway เฉพาะเมล์ที่ส่งไปหา hotmail/live เท่านั้น นอกนั้นก็จะใช้ server เราส่งออกตามปกติไม่ต้องไปผ่าน gateway
(แก้ไขดัดแปลงจากที่คุณไก่ thaitumweb โพสต์ไว้ http://www.thaihosttalk.com/showthread.php/70296-IP-61-19-24x?p=649832&viewfull=1#post649832 )

  1. แก้ไขที่ server gateway (ทำเหมือนที่คุณไก่โพสต์ไว้ทุกประการ)
    แก้ไขไฟล์ [COLOR=#ff0000]/etc/virtual/whitelist_hosts[/COLOR] แล้วเพิ่ม IP ของ server ที่โดน block เข้าไปบรรทัดละ 1 IP เสร็จแล้ว restart exim

  2. แก้ไขที่ server ที่โดน block โดยทำ 2 อย่างคือ

2.1 แก้ไข spf record ใน dns เพิ่ม ip gateway เข้าไป และแก้ไขจาก ~all เป็น -all

cd /var/named
perl -pi -e 's/ip4:[COLOR=#ff0000]xx.xx.xx.xx[/COLOR]/ip4:[COLOR=#ff0000]xx.xx.xx.xx[/COLOR] ip4:[COLOR=#ff0000]zz.zz.zz.zz[/COLOR]/' *.db
perl -pi -e 's/~all/-all/' *.db

เสร็จแล้ว restart named เพื่อโหลด dns ที่แก้ไข
/etc/init.d/named restart

2.2 แก้ไขไฟล์ exim.conf เพื่อให้ใช้ gateway ส่งเมล์ถึง hotmail
โดยเพิ่ม send_to_gateway เข้าไปก่อนหน้า lookuphost: ที่มีอยู่เดิม


# เพิ่มข้อความพวกนี้ก่อน lookuphost:
# Send to gateway 
send_to_gateway:
   driver = manualroute
   domains = windowslive.com : live.com : hotmail.com : hotmail.co.il : hotmail.co.jp : hotmail.com.ar : hotmail.com.br : hotmail.com.tr : hotmail.co.th : hotmail.co.uk : hotmail.de : hotmail.es : hotmail.fr : hotmail.it : hotmail.jp : hotmail.se : live.at : live.be : live.ca : live.cl : live.cn : live.co.kr : live.com.ar : live.com.au : live.com.mx : live.com.my : live.com.sg : live.co.za : live.de : live.dk : live.fr : live.hk : live.ie : live.in : live.it : live.jp : live.nl : live.no : live.ru : live.se : msnhotmail.com : outlook.com
   condition = "${perl{check_limits}}"
   transport = remote_smtp
   route_list = * [COLOR=#ff0000]zz.zz.zz.zz[/COLOR]

# lookuphost ข้างล่างนี้มีอยู่เดิมแล้ว
lookuphost:
  driver = dnslookup
  domains = ! +local_domains
  ignore_target_hosts = 127.0.0.0/8
  condition = "${perl{check_limits}}"
  transport = remote_smtp
  no_more

เสร็จแล้ว restart exim เพื่อโหลด config ที่แก้ไขไป
/etc/init.d/exim restart

  1. DA เวลา add user ใหม่ มันจะสร้าง spf default เป็น ~all หากต้องการให้เวลา add domain ใหม่แล้วเป็น -all ให้ทำตามนี้
    #cd /usr/local/directadmin/data/templates
    #cp -p dns_txt.conf custom/
    แก้ไขไฟล์ custom/dns_txt.conf แล้วแก้ให้เป็น -all หรือสั่งคำสั่งต่อไปนี้ให้ search/replace เอา
    #perl -pi -e ‘s/~all/-all/’ custom/dns_txt.conf
    หรืออาจจะเพิ่ม IP ที่ใช้เป็น gateway เข้าไปด้วย

หมายเหตุ:
[COLOR=#ff0000]xx.xx.xx.xx[/COLOR] คือ IP เครื่อง Remote ที่โดน hotmail block
[COLOR=#ff0000]zz.zz.zz.zz[/COLOR] คือ IP เครื่อง Gateway

ปล. ตอนแก้กลับคืน ไปทางใหนก็ย้อนกลับทางเก่าครับ

:015:

ฟอร์มสำหรับ Submit เรื่องไปยัง Hotmail

https://support.msn.com/eform.aspx?productKey=edfsmsbl2&ct=eformts

https://support.msn.com/eform.aspx?productKey=edfsesc&ct=eformts

พี่แมนครับ ขาด @windowslive.com ไปรึเปล่า?

ขอบคุณครับ ใครเห็นว่าขาดโดเมนใหนไปบอกด้วยนะครับ พอดีว่า search เอาใน google ก็คิดอยู่ว่าคงไม่ครบ
http://stackoverflow.com/questions/779368/what-is-the-full-list-of-hotmail-windows-live-mail-domains

เพิ่ม ip อื่นที่ที่ส่งใน SPF Record หรือยังครับ

ต่าง ISP ได้ครับ สบายๆ email ใช้ BW ไม่มาก
เรื่อง IP ไม่ตรง อันนี้เราประกาศใน spf record ไว้แล้ว น่าจะไม่มีปัญหา

ประกาศใน spf ครับ ตรงที่ให้แก้ตรง dns txt นั้นแหละครับ

มาคิดๆอีกทีนึกได้ว่าถ้าเราใช้ smtp gmail hotmail มันจะให้ส่งได้สักวันละเท่าไหร่ครับ

ก็จะแก้ประมาณนี้


send_via_gmail:    
driver = manualroute    
domains = 
windowslive.com : live.com : hotmail.com : hotmail.co.il : hotmail.co.jp : hotmail.com.ar : hotmail.com.br : hotmail.com.tr : hotmail.co.th : hotmail.co.uk : hotmail.de : hotmail.es : hotmail.fr : hotmail.it : hotmail.jp : hotmail.se : live.at : live.be : live.ca : live.cl : live.cn : live.co.kr : live.com.ar : live.com.au : live.com.mx : live.com.my : live.com.sg : live.co.za : live.de : live.dk : live.fr : live.hk : live.ie : live.in : live.it : live.jp : live.nl : live.no : live.ru : live.se : msnhotmail.com    
condition = "${perl{check_limits}}" 
transport = gmail_smtp        
route_list = * smtp.gmail.com

# lookuphost ข้างล่างนี้มีอยู่เดิมแล้ว lookuphost:   
driver = dnslookup   
domains = ! +local_domains  
 ignore_target_hosts = 127.0.0.0/8   
condition = "${perl{check_limits}}"   
transport = remote_smtp   
no_more

แล้วก็หา begin authenticators แล้วก็เพิ่มในส่วนตรงนี้

gmail_login:        
 driver = plaintext        
 public_name = LOGIN        
 client_send = : [EMAIL="yourname@gmail.com"]yourname@gmail.com[/EMAIL] : YourGmailPassword

แล้วก็ ค้น remote_smtp:
driver = smtp
เพิ่มข้างล่างนี้

gmail_smtp:        
 driver = smtp        
  port = 587        
  hosts_require_auth = $host_address        
  hosts_require_tls = $host_address

แล้วก็ไปแก้ spf reccoard ใส่ไอพี gmail
ส่วนส่งด้วย smtp hotmail ก็แก้เป็น smtp.live.com port ก็ 587 เหมือนกัน

ก็ถ้าประยุกต์ก็น่าจะประมาณ ถ้าส่งไปหา hotmail ก็ใช้ smtp.live.com ถ้าส่งหา gmail ก็ smtp.gmail.com

ยังไม่ได้เทสครับ แต่คิดว่าไม่น่ามีปัญหา แต่ว่า ถ้าใช้ smtp ของเขาเยอะๆ นี่ จะโดนบล้อกไหมนี่

ใครเทสแล้วมาเล่าสู่กันฟังครับ

เพิ่มเติมจากที่นี่ครับ
http://www.manu-j.com/blog/wordpress-exim4-ubuntu-gmail-smtp/75/

อืม ก็เป็นอีกทางเลือกนึงครับ
แต่ผมว่าไม่ดีครับ ไปเพิ่ม spf เอา ip gmail ใส่เข้าไป แบบนี้ spammer หรือใครๆก็มาแอบใช้ gmail ส่งออกในชื่อโดเมนเราได้สบายๆ แค่มี account gmail ก็ส่งได้แล้ว
หา IP ที่เป็น private server ที่ไม่ติด black list แล้วเปิด whitelist เพิ่มเฉพาะ ip ที่จะ relay เข้าไปน่าจะปลอดภัยกว่าเยอะ

พวกใช้ google app ก็ไม่เห็นมีปัญหานะครับ เพราะว่าประกาศ mx อยู่แล้วนะครับ
google hotmail ถ้าส่งสปาม account เขาก็น่าจะโดนบล็อกนะครับ

เยี่ยมเลยครับ พอเริ่มทำ ไอพีก็เริ่มกลับมาปกติ

ขุดๆๆ คงได้ใช้กันอีกแล้ว

ฮ่าๆ :d5f02ecd:

send_to_gateway:
driver = manualroute
domains = ! +local_domains
condition = "${perl{check_limits}}"
transport = remote_smtp
route_list = * [COLOR=#ff0000]xxx.xxx.xxx.xxx[/COLOR] #<-- ตรงนี้ ใส่ IP ของ mailgateway หลายที่ได้ไหมครับ และต้องกำหนดอย่างไร
เช่น มี IP 123.123.123.123 กะ 456.456.456.456
ต้องการให้ ถ้าส่ง IP แรกไม่ได้ออก ให้ส่ง IP สอง แบบนี้ทำได้ไหมครับ

ไม่น่าได้นะ รู้สึกว่ามันจะต้องตั้งค่าให้มัน random เลือกโฮสใดโฮสหนึ่งครับ เคยอ่านผ่านๆมา

สอบถามเพิ่มครับ :

ถ้าหากต้องการกำหนดให้ เฉพาะบางโดเมน(ในเครื่อง) ส่งผ่าน ผ่าน relay mail
เช่น โดเมน aaa.com bbb.com ส่งผ่าน relay mail
โดเมนเนม ccc.com ddd.com ยังคงส่งผ่าน IP server ปกติ

ต้องแก้ตรงไหน exim.conf บรรทัดไหนครับ

/ ขอบคุณมากครับ

http://www.thaihosttalk.com/showthread.php/70339-การ-relay-mail-ผ่าน-server-อื่น-กรณี-ip-หลักถูก-block?p=649874&viewfull=1#post649874

จะแก้จาก hotmail เป็น aaa.com bbb.com ตามต้องการ หรือจะต่อท้ายไปก็ได้ครับ

ความหมายที่ต้องการ คือ โดเมนนเม ที่อยู่ใน DA ของเราครับ ถ้าต้องการให้ aaa.com bbb.com ส่งผ่าน relay ส่วนโดเมนอื่นๆ ยังคงส่งผ่าน IP Server ตามปกติ