จะตรวจสอบว่ามีที่อยู่อีเมลได้อย่างไร


26

ฉันพยายามตรวจสอบที่อยู่อีเมล 2,000 รายการเพื่อดูว่ามีอยู่หรือไม่ มีวิธีการตรวจสอบว่าที่อยู่อีเมลถูกต้องโดยไม่ต้องส่งอีเมลไปยังแต่ละที่อยู่หรือไม่?

ฉันพบบริการอีเมลออนไลน์ไม่ จำกัดแต่ตรวจสอบเพียง 20 ที่อยู่อีเมลก่อนที่จะซื้อเวอร์ชันเต็ม

คำตอบ:


37

เพียงเพื่อประโยชน์ของความสมบูรณ์: บางเซิร์ฟเวอร์ SMTP ไม่ระบุว่าที่อยู่อีเมลที่มีอยู่ ทำตามตัวอย่างเต็มในคำตอบอื่น :

telnet gmail-smtp-in.l.google.com 25

helo example.com
mail from: <me@example.com>
rcpt to: <somenonexistinguser@gmail.com>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596

เมื่อสำเร็จและบนเซิร์ฟเวอร์ที่ไม่สามารถหรือไม่ต้องการบอกว่าที่อยู่นั้นถูกต้องคำสั่งสุดท้ายจะให้ผลลัพธ์:

250 2.1.5 OK

อย่างใดอย่างหนึ่งก็สามารถเรียกquitโดยไม่ต้องส่งอีเมลใด ๆ เลย ถึงกระนั้นเมื่อพยายามที่อยู่หลายแห่งสิ่งนี้อาจทำให้คุณถูกบล็อกได้

(Gmail ไม่สนับสนุนvrfyคำสั่งบนเว็บไซต์มีปุ่ม "ตรวจสอบความพร้อมใช้งาน" เมื่อลงชื่อสมัครใช้บัญชี Gmail ใหม่ซึ่งอาจให้ข้อมูลบางส่วนกับคุณได้ แต่ที่อยู่เดิมจะไม่สามารถใช้งานได้ในบางเวลา)


1
SMTP กำหนดVRFYคำสั่งเพื่อวัตถุประสงค์นี้
grawity

@grawity ซึ่งอาจเป็นจริงในทางทฤษฎี แต่VRFYไม่สามารถใช้งานได้กับ Gmail (ดูความคิดเห็นของฉันที่คำตอบของ Michael .)
Arjan

2
เซิร์ฟเวอร์บางตัวไม่ตอบสนองด้วยข้อผิดพลาด "ไม่มีอยู่" สำหรับบัญชีที่หายไปดังนั้นจึงไม่น่าเชื่อถืออย่างสมบูรณ์ หากเซิร์ฟเวอร์นั้นเป็นพร็อกซี (และ / หรือเซิร์ฟเวอร์รองภายนอก) สำหรับเซิร์ฟเวอร์อื่น ๆ จำนวนหนึ่งอาจไม่ทราบว่าบัญชีใดที่ใช้งานได้ใน hop ถัดไปดังนั้นจะให้ "250 OK" สำหรับทุกสิ่งและเซิร์ฟเวอร์บางตัวถูกตั้งค่าด้วยวิธีนี้ เพื่อหยุดสแปมเมอร์ที่พยายามระบุบัญชีที่ถูกต้อง การทดสอบอย่างรวดเร็วของเซิร์ฟเวอร์จดหมายลูกค้าบางรายของเราแสดง 1 ใน 5 ที่ฉันพยายามไม่ได้ให้การตอบสนอง 5xx สำหรับบัญชีที่ไม่มีอยู่จริง
David Spillett

(@ David ฉันรู้ว่านั่นเป็นเหตุผลที่ผมใช้คำว่า "บางคน" ดังกล่าวข้างต้น ... แต่ฉันได้เน้นย้ำว่านิด..)
Arjan

@Arjan ผมเขียนสคริปต์หลามขนาดเล็กโดยอัตโนมัตินี้gist.github.com/arulrajnet/c613bd0fad5de00bab2e
Arul

23

หากเป็นไปได้ผู้ส่งอีเมลขยะทั่วโลกจะร้องเพลงด้วยความยินดี

ขออภัย แต่ไม่เป็นไปไม่ได้ที่จะทราบว่ามีที่อยู่อีเมลหรือไม่

ในความคิดของฉันนี้เป็นคุณสมบัติ!

  • หากคุณรู้จักผู้ติดต่อของคุณคุณจะทราบข้อมูลการติดต่อของพวกเขา
  • หากคุณไม่รู้จักผู้ติดต่อของคุณแสดงว่าคุณเป็นคนแปลกหน้าและพวกเขาจะไม่ขอบคุณที่ได้รับจดหมายที่ไม่พึงประสงค์จากคุณ
  • หากคุณเคยรู้จักกับผู้ติดต่อของคุณและพวกเขาไม่ได้แจ้งให้คุณทราบถึงการเปลี่ยนแปลงที่อยู่ของพวกเขาพวกเขาได้ทำการตัดสินใจอย่างมีสติที่จะไม่ได้รับจดหมายของคุณ

วิธีที่ดีที่สุดที่คุณสามารถทำได้คือส่งอีเมลไปยังรายการของคุณแล้วลบอีเมลที่ตีกลับ (= ที่ไม่สามารถส่งได้)

ระวัง! ในบางประเทศเป็นการผิดกฎหมายที่จะส่งอีเมลขยะที่ไม่พึงประสงค์ไปยังผู้ที่ไม่ได้อนุญาตล่วงหน้าอย่างชัดเจน


ขอบคุณสำหรับสิ่งนี้. แต่ใช่เรารู้ว่าผู้ติดต่อ แต่บางคนไม่ได้อัปเดตรายละเอียดการติดต่อกับเราเมื่อพวกเขาเปลี่ยนตำแหน่งหรือ บริษัท เราส่งจดหมายข่าวครั้งล่าสุดและมันตีกลับที่อยู่อีเมลและบัญชีของเราถูกเปิดใช้งานอีกครั้งเนื่องจากมีการตีกลับอีเมลจำนวนมาก ฉันพบหนึ่งในอินเทอร์เน็ต แต่ไม่แน่ใจว่าสิ่งนี้น่าเชื่อถือหรือไม่: Verify-email.org
tintincutes

2
+1 - ถ้าใช้งานได้จะถูกใช้อย่างรวดเร็ว นี่คือเหตุผลที่เราไม่สามารถมีสิ่งที่ดี!
David Spillett

2
ไม่แน่ใจว่าทำไมจึงมีการอัปเดตอย่างมาก บทเรียน 101 เรื่องจริยธรรม? ฉันเห็นบางอย่างเช่นสิ่งที่ OP ต้องการใช้และไม่ใช่เพื่อวัตถุประสงค์ที่เลวร้าย คำตอบและความคิดเห็นอื่น ๆ แนะนำว่าเป็นไปได้สำหรับเซิร์ฟเวอร์อีเมลหลายแห่งโดยเฉพาะ บริษัท / ไม่ใช่ Google
Daniel Beck

1
@Daniel: มันเป็นไปได้สำหรับบางคน ( หลาย ๆอัน) เซิร์ฟเวอร์อีเมล / บริการ - แต่มันเป็นไปไม่ได้อย่างน่าเชื่อถือและไม่น่าเชื่อถือสำหรับที่อยู่ใด ๆ ฉันได้รับการโหวตให้ถูกต้องสำหรับความถูกต้องทางเทคนิคของ "คุณไม่สามารถรู้ได้อย่างแน่นอน" มากกว่าด้านจริยธรรม
David Spillett

1
คนที่ถูกนำมาใช้เป็นผู้ส่งสแปมปลอมวิ่งจะไม่ได้มีความสุขมากเกินไปเกี่ยวกับ "คุณสมบัติ" นี้เมื่อได้รับจำนวนมากbackscatter (นอกเหนือจากข้อความตีกลับเป็นครั้งคราวจากการทำงานที่ใช้ที่แตกต่างกันFrom, Reply-toหรือReturn-Path. สำหรับแต่ละข้อความผมได้รับข้อความนับพันตีกลับสองครั้งที่กรองได้อย่างง่ายดายยังคงไม่ดีมาก.)
Arjan

7

ไม่มีวิธีที่ดีในการทำเช่นนั้นจริงๆ มีคำสั่ง 'VRFY' ในโปรโตคอล SMTP แต่ฉันไม่รู้จักใครก็ตามที่อนุญาตให้ใช้งานได้อีกต่อไป - มันมีประโยชน์กับผู้ส่งสแปมมากเกินไป โฮสต์ส่วนใหญ่จะปฏิเสธคำสั่งอีกต่อไป

สิ่งที่ดีที่สุดที่คุณสามารถทำได้ในขณะนี้คือการส่งอีเมลและบันทึกสิ่งที่ตีกลับ (สังเกตว่าบางโฮสต์อีเมลจะ blackhole อีเมลที่ไม่สามารถจัดส่งได้แทนที่จะตีกลับ)

ฉันไม่ทราบว่าธุรกิจหรือจุดประสงค์ของคุณคืออะไรในรายการนี้ แต่คุณควรรู้ว่าถ้าคุณส่งอีเมลไปยังคน 2000 คนพร้อมกันคุณมีแนวโน้มที่จะถูกตั้งค่าสถานะเป็นผู้ส่งสแปมโดยโฮสต์อีเมลบางราย


1
อาจเป็นการล้างรายชื่อผู้ติดต่อ จดหมายตีกลับอยู่ดี
Daniel Beck

พยายามทำความสะอาดรายชื่อ; ฉันต้องการออกแบบฐานข้อมูลผู้ติดต่อใหม่ เรามีลูกค้าจำนวนมากจาก บริษัท ต่าง ๆ ไม่แน่ใจว่าฉันต้องจัดหมวดหมู่พวกเขาในฐานข้อมูลเดียวหรือจะสร้างฐานข้อมูลที่แตกต่างกันสำหรับ บริษัท ที่แตกต่างกัน อะไรจะเป็นวิธีที่ดีที่สุด
โทนสี

หากฉันเข้าใจถูกต้องvrfy จะต้องมีชื่อผู้ใช้ไม่ใช่ที่อยู่อีเมล ถ้าเป็นจริงฉันเดาว่ามันถูกปิดใช้งานเป็นหลักด้วยเหตุผลด้านความปลอดภัยไม่ใช่เพื่อต่อสู้กับสแปมเมอร์? บน Gmail ทั้งvrfy existinguser, vrfy existinguser@gmail.com, vrfy someunknownuserและvrfy someunknownuser@gmail.comผลผลิตทั้งหมด252 2.1.5 Send some mail, I'll try my bestในขณะที่ Gmail เดียวกันมากrcpt to: ไม่เปิดเผยถ้าที่อยู่อีเมลที่ถูกต้อง
Arjan

ด้วย vrfy คุณเชื่อมต่อกับเซิร์ฟเวอร์อีเมลจากนั้นชื่อผู้ใช้ vrfy (ส่วนที่อยู่หน้า @ ในที่อยู่อีเมล) ถ้ามันใช้งานได้มันจะบอกคุณว่าใช่หรือไม่ว่าผู้ใช้เป็นของจริงหรือไม่ ถ้ามันไม่ทำงาน (ส่วนมากไม่ได้) มันจะพูดว่า 'ต้องห้าม' หรือ 'ฉันไม่มีความคิด' โปรดทราบว่าคำตอบ 'ฉันไม่มีความคิด' นั้นถูกต้องสมบูรณ์แบบสำหรับโฮสต์การส่งต่ออีเมลที่ไม่สามารถเข้าถึงรายการบัญชีที่ต่ำกว่ามาตรฐานได้ ดังนั้นแม้ในขณะทำงาน vrfy อาจไม่มีประโยชน์
Michael Kohne

2

ไม่สามารถระบุได้อย่างถูกต้องว่าที่อยู่นั้นเป็นของจริงหรือไม่ - ผลิตภัณฑ์ใด ๆ ที่อ้างว่าสามารถทำให้ความสามารถนั้นรุนแรงขึ้นได้ดังนั้นคุณจึงควรพิจารณาคำกล่าวอ้างอื่น ๆ

มีห้องสมุด F / OSS ที่มีอยู่ที่ทำได้มากที่สุด: ฉันเดาว่าซอฟต์แวร์ส่วนใหญ่ในตลาดเป็นเพียงกระดาษห่อหุ้มแฟนซีที่อยู่รอบ ๆ เหล่านั้นดังนั้นคุณอาจทำเองได้อย่างง่ายดายซึ่งดี / ไม่ดี หากคุณมีประสบการณ์การเขียนโปรแกรมใด ๆ แต่จำไว้ว่าไม่ว่าวิธีการตรวจสอบความถูกต้องจะดีเพียงใดที่จะให้ผลลัพธ์ที่เป็นเท็จทั้งเชิงบวกและเท็จ

http://freshmeat.net/projects/emailaddressvalidationcomponentยกตัวอย่างเช่นเกิดการค้นหาอย่างรวดเร็วสำหรับ freshmeat และสมมติว่าคำอธิบายนั้นถูกต้องมันทำทุกอย่างที่สามารถทำได้จริงเพื่อลองยืนยันที่อยู่


@DanieL: โอเคขอบคุณสำหรับสิ่งนี้ แล้วอันนี้ละ? เป็นสิ่งที่ถูกต้องเช่นกัน: techie-buzz.com/how-to/…
tintincutes

@tintincute: ดูใช้ได้จริงแหล่ง Lifehacker ของฉันใช้วิดีโอเดียวกัน ...
studiohack

2

คุณสามารถpingที่อยู่อีเมล

จาก Lifehacker.com:

http://lifehacker.com/5697360/how-to-verify-if-an-email-address-is-real-or-fake

เมื่อคุณส่งอีเมลถึงใครบางคนข้อความจะไปที่เซิร์ฟเวอร์ SMTP ซึ่งจะค้นหาระเบียน MX (Mail Exchange) ของโดเมนผู้รับอีเมล

กดลิงก์เพื่อดูคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการ ping ที่อยู่อีเมล


1

ภายในบริบทของ บริษัท สิ่งนี้สามารถทำได้โดยการค้นหาอัตโนมัติใน Active Directory


1

วิธีการเกี่ยวกับการเขียนสคริปต์ Perl เพื่อทำงานนี้โดยอัตโนมัติ? ลองใช้งานได้ที่: http://search.cpan.org/~ilyam/Mail-CheckUser-1.21/CheckUser.pm


สิ่งนี้ใช้คำสั่ง SMTP เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ SMTP และหากคุณทำการร้องขอมากเกินไปเร็วเกินไปคุณอาจถูกระบุว่าเป็นผู้ส่งสแปมและถูกบล็อก ดังนั้นจึงไม่ดีสำหรับการตรวจสอบอีเมลนับพัน
Bulrush

1

คุณสามารถลอง: http://verify-emails.com/

มันยังคงเป็นบริการลองและซื้อ แต่สามารถจัดการรายการเช่นเดียวกับอีเมลเดียวและสามารถรวมอยู่ในแบบฟอร์มการลงทะเบียน


โดเมนนั้นมีไว้เพื่อขาย ไซต์นั้นตายแล้ว
Bulrush

1

ฉันยังต้องการวิธีการตรวจสอบการมีอยู่ของที่อยู่อีเมลดังนั้นฉันจึงลงเอยด้วยการเขียนโปรแกรมเล็ก ๆ ของฉันเอง (งูใหญ่)

http://github.com/un33k/python-emailahoy

มันถูกต้อง 100% เมื่อผู้ให้บริการซื่อสัตย์กับคุณ
(gmail นั้นค่อนข้างตรงไปตรงมา แต่ yahoo ไม่ใช่อย่างที่บอกว่าใช่สำหรับอีเมลทั้งหมด)

มันดีกว่าไม่มีอะไรเลยเพราะมันช่วยลด spams ลงได้มากกว่า 50% สำหรับข้า


0

มันเป็นไปได้ที่จะตรวจสอบว่าที่อยู่อีเมลที่มีอยู่โดยใช้ลิงค์นี้: http://verify-email.org/ มันส่ง Ping ไปยังที่อยู่อีเมลและตอบกลับOkหากมีอีเมลอยู่และBadหากอีเมลนั้นเป็นของปลอมหรือไม่มีอยู่จริง อีกหนึ่งลิงก์ที่มีประโยชน์สำหรับปัญหานี้: http://www.shoutmeloud.com/how-to-verify-if-email-address-exist-or-not.html


ลิงค์ที่ 1: ดูเหมือนว่าการตรวจสอบที่อยู่เดียวไม่มีค่าใช้จ่าย แต่การตรวจสอบ 2000 ตามที่ถามในคำถามต้องใช้ซอฟต์แวร์ที่ชำระเงิน นั่นคือสถานการณ์ที่คำถามค้นหาทางเลือกดังนั้นนี่ไม่ใช่วิธีแก้ปัญหาสำหรับคำถามจริงๆ ลิงค์ที่สองยังเกี่ยวข้องกับการตรวจสอบเดียว Super User ไม่ใช่ฟอรัมซึ่งเป็นเรื่องปกติที่จะละทิ้งทุกสิ่งที่เกี่ยวข้องกับหัวข้อ โดยมีวัตถุประสงค์คือเพื่อสร้างฐานความรู้และแต่ละคำตอบควรให้คำตอบกับสิ่งที่ถูกถาม คำตอบที่ไม่ดึงดูดการโหวต
fixer1234
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.