ห้องสมุดธรรมดาที่ตรวจสอบความถูกต้องของอีเมล การตรวจสอบจะดำเนินการตามลำดับต่อไปนี้:
# mix.exs
def deps do
[
# other dependencies...
{ :email_checker , "~> 0.2.4" }
# other dependencies...
]
end
# config/config.exs -- default
config :email_checker ,
default_dns: :system ,
also_dns: [ ] ,
validations: [ EmailChecker.Check.Format , EmailChecker.Check.MX ] ,
smtp_retries: 2 ,
timeout_milliseconds: :infinity
ในสภาพแวดล้อมการทดสอบ เราจำเป็นต้องโหลดระเบียน DNS ด้วยตนเองเพื่อตรวจสอบว่ามี MX อยู่หรือไม่ เมื่อเราโหลดไลบรารี Erlang ยังไม่มีรายการบันทึก DNS เพื่อหลีกเลี่ยงปัญหาใดๆ เราจึงกำหนด DNS เริ่มต้น โดยค่าเริ่มต้น ค่าสำหรับสภาพแวดล้อมการทดสอบคือ : {8, 8, 8, 8}
ซึ่งเป็นเซิร์ฟเวอร์ DNS สาธารณะหลักของ Google หากคุณพบว่าคุณมีความล้มเหลวในการจำแนกชื่อ คุณอาจต้องระบุเซิร์ฟเวอร์ DNS เริ่มต้น
ในกรณีที่คุณต้องการโหลดเซิร์ฟเวอร์ DNS เพิ่มเติมด้วยตนเองหลังจากเซิร์ฟเวอร์เริ่มต้น คุณสามารถตั้งค่ารายการ IP เซิร์ฟเวอร์ DNS เพิ่มเติมได้ในการตั้งค่า also_dns
โปรดทราบว่าที่อยู่ IP จะแสดงเป็นสิ่งทูเพิลคั่นด้วยเครื่องหมายจุลภาค
การตั้งค่าการตรวจสอบเริ่มต้นควรเหมาะสมกับกรณีส่วนใหญ่ หากคุณใช้ที่อยู่อีเมลปลอมแต่ดูถูกต้องในการทดสอบของคุณเอง คุณอาจต้องตั้งค่าการตรวจสอบความถูกต้องเป็น [Format]
เท่านั้น จากนั้นการทดสอบ MX และ SMTP จะไม่ถูกนำมาใช้ในการกำหนดค่านั้น
กลยุทธ์การตรวจสอบ SMTP จะพยายามอีกครั้ง 2 ครั้งตามค่าเริ่มต้น
กลยุทธ์การตรวจสอบความถูกต้องของ MX และ SMTP แต่ละกลยุทธ์ใช้การหมดเวลาเริ่มต้นเดียวกันสำหรับการเชื่อมต่อเน็ตเหมือนกับการเรียกใช้ไลบรารี Erlang พื้นฐาน สิ่งสำคัญคือต้องทราบว่าค่านี้คือ :infinity
และการโทรจะใช้เวลาตราบเท่าที่การโทรใช้เวลา คุณอาจต้องการตั้งค่าการหมดเวลาที่เหมาะสมในหน่วยมิลลิวินาที โปรดทราบว่า:
# config/config.exs -- example personalized configuration
config :email_checker ,
default_dns: { 8 , 8 , 8 , 8 } ,
smtp_retries: 1 ,
timeout_milliseconds: 6000
EmailChecker . valid? ( "[email protected]" )
#=> true
EmailChecker . valid? ( "[email protected]" )
#=> false
บันทึกการเปลี่ยนแปลง
เอ็มไอที