เมื่อได้รับที่อยู่อีเมลผลลัพธ์ของการแปลงที่ใช้กับที่อยู่อีเมลนั้นและที่อยู่อีเมลที่สองจะส่งคืนผลลัพธ์ของการแปลงแบบเดียวกันที่ใช้กับที่อยู่อีเมลที่สอง
ที่อยู่อีเมลทั้งหมดจะมีโครงสร้างดังต่อไปนี้:
สตริงที่มีความยาวเป็นบวกที่มีอักขระตัวอักษรผสมตัวเลขและอย่างน้อยหนึ่งตัว.(ส่วนท้องถิ่น) ตามด้วย@สัญลักษณ์ตามด้วยสตริงที่มีความยาวเป็นบวกที่มีตัวอักษรและตัวเลข sumbols (โดเมน) ตามด้วย.สัญลักษณ์และสตริงสุดท้ายของความยาวเป็นบวก มีอักขระที่เป็นตัวอักษรและตัวเลข (TLD)
การแปลงที่อนุญาตมีสี่แบบ:
- ตัวตน (ไม่มีการเปลี่ยนแปลง) (
a.b@c.d -> a.b@c.d) - ส่งคืนเฉพาะส่วนท้องที่ (ทุกอย่างก่อน
@) ไม่ได้แก้ไข (a.b@c.d -> a.b) - การคืนค่าส่วนท้องถิ่นจะแบ่งออก
.หากมีพร้อมกับสัญลักษณ์แรกของแต่ละครึ่ง (a.b@c.d -> A B) - ส่งคืนเฉพาะโดเมน (ทุกสิ่งระหว่าง
@และถึงขั้นสุดท้าย.) ที่ไม่ได้แก้ไข (a.b@c.d -> c)
เมื่อมีการแปลงมากกว่าหนึ่งครั้งคุณสามารถให้ผลลัพธ์ที่เป็นไปได้ ช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของการส่งออกไม่สำคัญ แต่ในตรงกลางไม่ (เช่นถ้าคุณแยกa.bไปA Bควรจะมีเพียงหนึ่งช่องว่างตรงกลาง [และหมายเลขใด ๆ ที่จุดเริ่มต้นและจุดสิ้นสุดของการส่งออก] แต่ถ้าคุณแยกa.จากนั้นAด้วยช่องว่างจำนวนเท่าใดก็ได้ที่ยอมรับได้)
ตัวอย่าง ( input | output):
john.doe@gmail.com, John Doe, phillip.maini@gmail.com | Phillip Maini
John.Doe@gmail.com, John Doe, Phillip.Maini@gmail.com | Phillip Maini
foo.bar@hotmail.com, foo.bar, gee.whizz@outlook.com | gee.whizz
foo.bar@hotmail.com, foo.bar, gEe.Whizz@outlook.com | gEe.Whizz
rodney.dangerfield@comedy.net, comedy, michael.scott@office.0 | office
.jones@x.1, Jones, a.@3.z | A
.jones@x.1, .jones@x.1, a.@3.z | a.@3.z
.jones@x.1, .jones, a.@3.z | a.
.jones@x.1, x, a.@3.z | 3
.@b.c, .@b.c, 1@2.3 | 1@2.3
john.jones@f.f, John Jones, 1in.thehand@2inthe.bush | 1in Thehand
chicken.soup@q.z, Chicken Soup, fab@ulou.s | Fab
lange@haare.0, lange, fat.so@fat.net | fat.so
Lange@haare.0, Lange, fat.so@fat.net | {fat.so, Fat So} # either acceptable
chicken@chicken.chicken, chicken, horse@pig.farm | {horse, pig} # either acceptable
ใช้กฎและช่องโหว่ตามปกติ
@และสุดท้าย.) เนื่องจากส่วนและโดเมนในตัวเครื่องมีทั้งคู่chickenจึงคลุมเครือไม่ว่าจะเป็นการแปลงครั้งที่ 2 หรือครั้งที่ 4
A[ด้วยช่องว่างต่อท้าย] ที่อินพุตที่สองเป็นJones[ด้วยช่องว่างนำหน้า])?
.jones@x.1, Jones, a.@3.zเป็นA- ถ้าjonesเป็นคู่ที่หมายถึงส่วนที่ตรงกันเป็นส่วนหนึ่งระหว่างช่วงแรกและ @ สัญลักษณ์ แต่นั่นจะส่งผลให้สตริงว่างเพราะaเป็นก่อนช่วงเวลาแรกและไม่หลังจาก