发表回复 
问题·未解决 任意指定的电邮用户名自动逐一加点
2017-05-20, 07 : 44
任意指定的电邮用户名自动逐一加点
请教怎么用AHK做任意指定的电邮用户名自动逐一加点的问题,比如任意指定的 [email protected] [email protected] [email protected] 等等,自动逐一加点:

从第一个字母开始,逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

第一个字母后固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

第二个字母后固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]
[email protected]

[email protected]

第三个字母后固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

以此类推;

第一和第二个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]
[email protected]

[email protected]

第二和第三个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

第三和第四个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

以此类推;

第一第二和第三个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]


以此类推,一直到所以能加点的(不重复的)全部加完为止。。。
对其他任意指定的电邮用户名也自动逐一加点一直到无法再加点为止
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-05-20, 14 : 52 (这个帖子最后修改于: 2017-05-20 15 : 20 by feiyue.)
RE: 任意指定的电邮用户名自动逐一加点
@orican 这样就行了。你的想法真有趣。

代码: (全选)
s:=Email( "[email protected]" )

Clipboard:=RegExReplace(s,"\n","`r`n")

MsgBox, 4096,, 生成的结果已复制到剪贴板!`n`n%s%

Return

Email(str) {
  bch:=A_BatchLines
  SetBatchLines, -1
  s1:=SubStr(str,1,InStr(str,"@")-2)
  s2:=SubStr(str,InStr(str,"@")-1), s:="`n"
  Loop, Parse, s1
  {
    s:=RegExReplace(s,"(?=\n)",A_LoopField)
    s.=RegExReplace(s,"(?=\n)",".")
  }
  s:=Trim(RegExReplace(s,"(?=\n)",s2),"`n")
  Sort, s, R U
  SetBatchLines, %bch%
  return, s
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-05-20, 18 : 32
RE: 任意指定的电邮用户名自动逐一加点
Gmail的原意,可能是模仿替身邮,但实际操作中,有些网站后台,都会把Gmail的.和+去掉;从垃圾邮件角度来说,也可以从替身邮,猜出原邮箱地址(点去掉 +号及后面的也去掉 即可)
最终,效果远远不如当年的Yahoo邮箱(Yahoo的邮箱的替身邮,是生成一个种子。从种子地址猜不出真正邮箱地址)
题外话了……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-05-23, 16 : 51
RE: 任意指定的电邮用户名自动逐一加点
代码: (全选)
MsgBox % dotemail("[email protected]",1)
MsgBox % dotemail("[email protected]",3)
MsgBox % dotemail("[email protected]",5)

return



dotemail(email,pos1:=1)
;email为原Email地址,pos1为需要生成几个点,运行后就会明白
{
stringgetpos,pos2,email,@
uname1:= SubStr(email,1,pos1-1)
uname2:= SubStr(email,pos1,pos2)
dname:= SubStr(email,pos1+pos2)
arr:=StrSplit(uname1)
Loop % Arr.MaxIndex()
{
    uname3 .= Arr[a_index] "."
}
;~ MsgBox %uname3%
loop ,% pos2-pos1
{
newuname:= uname3 substr(uname2,1,A_Index)"."substr(uname2,A_Index+1,pos2-A_Index) dname
unamelist .= newuname "`r`n"
}
return unamelist
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合