使用 Python 的随机电子邮件地址生成器

用户通常以这样的方式设置电子邮件地址:他或她使用该电子邮件地址越多,他或她就越记得该电子邮件地址。但有许多用例需要随机电子邮件地址。如果需要在不受信任的网站或不受信任的企业提交电子邮件地址,则随机电子邮件地址将发挥重要作用。它们提供了一种绕过网站要求并继续该过程的方法。TempMail 等服务也为这些随机电子邮件提供邮箱。TempMail 会在随机生成的电子邮件邮箱中为用户读取邮件,并帮助用户绕过网站的要求,例如 OTP(一次性密码)。

那么如何生成随机电子邮件地址。为临时随机生成的电子邮件地址生成收件箱是一项艰巨的任务,但使用 Python 创建随机电子邮件地址却很容易。Python 的random 模块这里非常有用。但是,在生成随机电子邮件地址之前,需要了解如何创建电子邮件地址。

电子邮件地址由两部分组成:名称和域名。该名称是域名中电子邮件地址的唯一标识符。它需要遵循一定的规则,例如名称不能以数字字符开头,名称不能包含“.”、“$”等特殊字符。域名托管电子邮件地址。它由行业注册并将名称分发到电子邮件地址。

电子邮件地址细目

在上面的示例中:johnsmit@example.com, johnsmit 是域 example.com 中的电子邮件地址的名称。地址中“@”符号后面的任何内容都是域名。域由两部分组成:服务器名称和顶级域。服务器名称基本上是指注册域名的行业。顶级域名表明了行业的隶属关系。

在随机电子邮件生成器中,可以有两种方法。人们可以随机创建所有三个组件:名称、服务器名称和顶级域名,或者随机创建名称并使用众所周知的域名作为电子邮件地址。本文介绍了这两个示例。

具有固定域名的随机电子邮件

许多流行的域名都可用,允许用户创建免费电子邮件。谷歌和雅虎等行业 允许其用户分别创建域名为@gmail.com 和@yahoo.com 的免费电子邮件。许多其他流行的域名,例如用户普遍使用的@hotmail.com 和@redmail.com。

电子邮件还可以有不同的顶级域名,这些顶级域名指的是行业的从属关系。.gov 等顶级域名 (TLD) 意味着电子邮件地址所有者与政府合作,而 .ac 则意味着该电子邮件地址属于学术机构。.in、.us、.ge 等 TLD 是国家/地区 TLD,代表属于某个国家/地区的电子邮件地址,例如上例中分别为印度、美国和德国。最常用的 TLD .com 代表商业机构电子邮件地址。使用这些流行的服务器名称和 TLD,可以生成电子邮件地址,也可以注册以供现实生活使用。以下代码演示了相同的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 号
import random
validchars='abcdefghijklmnopqrstuvwxyz1234567890'
loginlen=random.randint(4,15)
login=''
for i in range(loginlen):
    pos=random.randint(0,len(validchars)-1)
    login=login+validchars[pos]
if login[0].isnumeric():
    pos=random.randint(0,len(validchars)-10)
    login=validchars[pos]+login
servers=['@gmail','@yahoo','@redmail','@hotmail','@bing']
servpos=random.randint(0,len(servers)-1)
email=login+servers[servpos]
tlds=['.com','.in','.gov','.ac.in','.net','.org']
tldpos=random.randint(0,len(tlds)-1)
email=email+tlds[tldpos]
print(email)

上面的代码片段利用 random 模块的 randint() 函数生成随机整数。randint () 函数在其两个输入之间生成一个随机整数,包括两个输入。这里,电子邮件地址名称的长度固定在4个字符长到15个字符长之间。这是为了避免创建非常小或非常长的电子邮件地址。validchars 是一个字符串,由电子邮件地址名称中的所有有效字符组成。代码首先随机决定Name的长度。然后它从 validchars 中随机选择字符,直到 Name 的长度不等于所选的长度。服务器和顶级域名是两个不同的列表,其中包含众所周知的服务器名称和顶级域名。然后代码随机选择服务器和 TLD。所有这些都连接在一起,并提供随机生成的电子邮件地址作为输出。

下图显示,程序执行了两次。这两次都会产生不同的输出。如下:

第一次运行时随机电子邮件生成器的输出
与第一次输出相比,随机电子邮件生成器的输出第二次运行

当随机电子邮件生成器运行两次时,它会产生两个不同的输出:c9jf8vlpm7a0@gmail.inb1cl26udgrb@yahoo.ac.in这两封电子邮件不仅在名称上有所不同,而且在域名上也有所不同。

带有随机生成域名的随机电子邮件

有时,不首选使用具有固定域名的随机生成的电子邮件,而是首选随机生成的域名。这是在不受信任的网站上保持完全匿名和安全的额外步骤。此类域名可能存在,也可能不存在。著名的 TempMail 服务也使用这种方法。以下代码演示了使用随机域名生成随机电子邮件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 号
18
19
20
21
22
23
import random
validchars='abcdefghijklmnopqrstuvwxyz1234567890'
validoms='abcdefghijklmnopqrstuvwxyz'
login=''
server=''
extension=''
loginlen=random.randint(4,15)
serverlen=random.randint(3,9)
tldlen=random.randint(2,3)
for i in range(loginlen):
    pos=random.randint(0,len(validchars)-1)
    login=login+validchars[pos]
if login[0].isnumeric():
    pos=random.randint(0,len(validchars)-10)
    login=validchars[pos]+login
for i in range(serverlen):
    pos=random.randint(0,len(validoms)-1)
    server=server+validoms[pos]
for i in range(tldlen):
    pos=random.randint(0,len(validoms)-1)
    tld=tld+validoms[pos]
email=login+'@'+server+'.'+tld
print(email)

在上面的代码片段中,电子邮件地址名称的生成方式与之前的方式相同。但生成服务器名称和 TLD 遵循相同的过程。服务器名称长度范围为 3 个字符到 9 个字符,TLD 长度为 2 或 3 个字符。validoms 字符串包含可在域名中使用的字符。与电子邮件地址名称中使用的有效字符不同,它不包含数字字符。电子邮件的格式为LoginName@ServerName.TLD 输出如下所示:

具有随机生成域名的随机电子邮件生成器的输出
具有新的随机生成域名的随机电子邮件生成器的输出

运行随机电子邮件生成器两次后,它生成了两封电子邮件:m6mioui7qekad@kjts.cetu9awu1fpgtssojbw@hoisjya.jnq这两封电子邮件的长度、名称和域名也完全不同。

结论

在隐私和安全经常遭到破坏的今天,生成随机电子邮件地址非常重要。如果用户必须随时进行交互,这些随机生成的电子邮件地址可帮助用户访问不受信任的网站和企业。TempMail 等服务会在一段时间内向用户提供随机电子邮件地址及其收件箱。这些电子邮件稍后会被处理掉。

使用随机 Python 模块,生成随机电子邮件地址非常简单。不过,他们的收件箱不能这么简单地生成。这些随机电子邮件地址可能有也可能没有固定域名。与固定域名相比,随机生成的域名提供了更高的安全性。因此,完全随机生成的电子邮件地址应该优于那些具有固定域名的电子邮件地址。

参考

Python 随机库