按这个问题我以前问的谷歌应用程序引擎,如果我有机会获得所有的信息在一个标准的电子邮件,而不仅仅是From,To,Subject,Body领域,也是所有页眉和MIME信息,我怎么能确认两个传入电子邮件具有相同From地址实际上来自同一发件人.
到目前为止我所考虑的事情:
我意识到这是一个复杂的问题(我确信像Posterous这样的公司在这个问题上花了很多时间).我只是在寻找一些初步开始的标准.谢谢!
更新:
到目前为止的答案确实很有帮助,但只是为了帮助他们,我的项目的背景是我将从用户那里收到大量的电子邮件作为Web应用程序.他们会使用他们的电子邮件作为向我的系统输入数据的主要方式.这就是我为什么做了Posterous的比喻.用例非常相似.
什么是官方格式
name <email>
Run Code Online (Sandbox Code Playgroud)
在电子邮件标题?我需要在将用户输入粘贴到标题之前验证用户输入.
此外,您是否碰巧知道好的正则表达式来验证该名称+电子邮件对的形式?
官方RFC文档声明我们可以在域的"本地"部分使用大写和小写字母(以及许多其他疯狂的东西).
然而,现实世界中常见的东西 - 以及规范所说的是两个不同的东西.! # $ % & ' * / = ? ^ { | } ~在来自大型提供商(如yahoo,google或hotmail)的电子邮件中,不允许使用这些额外字符().此外,非常非常罕见地看到包含大写字母的电子邮件(JohnDoe@example.com).
我今天给自己发了几封电子邮件,使用不同的大写和小写组合,发现我的电子邮件服务器都将它们视为同一帐户而忽略了字母大小写不同的事实.换句话说,JohnDoe@example.com = johndoe@example.com到我的电子邮件服务器(包括我的免费电子邮件帐户).
我应该按照世界选择的格式采取行动 - 并标准化/小写所有ANSII电子邮件吗?或者我应该允许用户注册多个帐户,如JohnDoe @ example.com,johndoe @ example.com和JOHNdoe@example.com?
可能重复:
在Javascript中验证电子邮件地址?
我知道没有办法只使用正则表达式来验证电子邮件地址,但我认为我应该能够拒绝一些明显无效的电子邮件地址,以便帮助那些错误输入不同内容的友好用户,例如他们的名字或密码.电子邮件地址栏.所以,我不想拒绝任何有效的电子邮件地址,但是想要拒绝尽可能多的无效电子邮件格式,只使用正则表达式.但我想任何javascript/jquery/...都可以.
这是我到目前为止:
^.+@.+\..+$
Run Code Online (Sandbox Code Playgroud)
是的,没有真正的验证正则表达式,但应该有一些拒绝.不,这不会阻止任何人输入虚假地址.是的,您仍然需要发送确认电子邮件以验证真实情况.
上面的正则表达式将用于javascript.
-
在.NET中,我会让.NET使用来验证电子邮件格式
try
{
var mailAddress = new MailAddress(possibleMailAddress);
}
Run Code Online (Sandbox Code Playgroud)
如果没问题,请检查域部分的DNS记录,看是否有可能存在电子邮件服务器.只有当DNS记录清楚地表明没有电子邮件服务器或者没有这样的域时,电子邮件地址才会被拒绝.然后缓存一些结果,以加快将来的查找速度.
不过,我必须发送确认电子邮件进行验证......
我希望我清楚我的问题,所以这里.在我们的应用程序的注册流程中,我们询问用户的用户名,电子邮件和密码.但是,我们不要求确认/验证用户的电子邮件以继续使用该应用程序.根据我们的IT部门 - Azure AD B2C要求在最终用户首次注册时验证电子邮件地址.这是绝对真理吗?其他应用程序需要电子邮件,但仍然会让用户无需确认即可使用服务.
我们了解风险,如果用户决定使用他们不拥有的电子邮件,则会对用户施加压力.此方案的详细信息将在法律披露中详细说明.因此,重置密码,通知等对此用户不起作用.
我希望每个用户都使用唯一的电子邮件地址进行注册。然而,像 GMail 这样的一些电子邮件地址允许您添加一个 + 后缀,该后缀可用于将多个帐户注册到一个网站,但它全部转到一个电子邮件地址,例如
实际上,他们可以拥有任意数量的电子邮件地址。这是一个问题,因为我的网站将其视为 5 个独立的电子邮件地址,但 gmail 将其视为一个电子邮件地址。
我想阻止任何带有“+”的电子邮件地址,但我不想阻止任何有效的电子邮件地址。什么是标准做法?
我正在处理2个棘手的UX JQuery问题.我正在使用JQuery克隆2个表单变量.如何索引,识别它们,以便我可以使用此ID标记它们.例如,如果我从选择框中选择3,我应该获得3行形式,并且在每行的左侧应该以数字开始1. form,2.form,3 form开头.
第二个问题我想要验证服务员[]对确认者[].我如何在克隆的HTML代码中执行此操作.
这是我的JSFiddle http://jsfiddle.net/tGprH/5/
这是我的HTML代码:
<select name="select" id="select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br/>
<p>Email address, Confirm Email Address</p>
#1 <input type="text" name="attendant[]"/>
<input type="text" name="confirmattendant[]"/>
<br/>
<div id="container">
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的JQuery
$("select").change(function() {
var select = parseInt($('#select').val() , 10);
var $clone = '<input type="text" name="attendant[]" /><input type="text" name="confirmattendant[]" /><br/>';
console.log($clone);
var html = '';
for(var i = 1;i< select ; i++){
html += $clone;
}
$('#container').empty().html(html);
}).change();
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 telnet 和 php 进行邮件验证。整个过程在终端中很好,但是当我使用 php 时shell_exec(),它只能运行到 Telnet 连接命令。连接 telnet 后,其余的 telnet 特定命令将不再起作用。
是否有其他方法需要我们使用 php 执行 telnet?
更新:我正在尝试复制本教程。
这是我的代码
public function mailtest(Request $request){
//Taking input email
$email = $request->input("email");
$divide = explode("@", $email);
//Find out the Domain
$server = $divide[1];
$response = shell_exec("nslookup -q=mx $server");
//Response of the nslookup
print_r($response);
$mailServerList = explode(PHP_EOL, $response);
$line = $mailServerList[4];
$serverArr = preg_split('/\s+/', $line);
$n = sizeof($serverArr);
$mailServer = $serverArr[$n-1];
//Printing out the mail server out of the …Run Code Online (Sandbox Code Playgroud) 我想检查电子邮件地址是否有效。
如何使用正则表达式在 VB 中验证电子邮件地址?
([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})
Run Code Online (Sandbox Code Playgroud) 我有一个经过此验证的 bean:
@Email(message = "Email is not valid", regexp="{(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])}")
@NotEmpty(message = "Email cannot be empty")
private String email;
Run Code Online (Sandbox Code Playgroud)
当电子邮件为空时,消息很好,但是当我输入此文本时
perisava.util.Random@1d7f0036
Run Code Online (Sandbox Code Playgroud)
没有显示错误
email-validation ×10
email ×6
javascript ×2
jquery ×2
regex ×2
.net ×1
azure ×1
azure-ad-b2c ×1
dns ×1
java ×1
networking ×1
php ×1
shell-exec ×1
spring ×1
spring-boot ×1
telnet ×1
validation ×1
vb.net ×1
verification ×1