Я разрабатываю приложение для iPhone, в котором мне нужно, чтобы пользователь указал свой адрес электронной почты при входе в систему.
Как лучше всего проверить, является ли адрес электронной почты действительным доменным именем?
Я разрабатываю приложение для iPhone, в котором мне нужно, чтобы пользователь указал свой адрес электронной почты при входе в систему.
Как лучше всего проверить, является ли адрес электронной почты действительным доменным именем?
Если это действительно важно для вас, вы можете попытаться найти MX-запись указанного домена через DNS.
См. этот ответ для кода C (Linux) для этого.
Чтобы проверить адрес электронной почты: -
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
if( [emailTest evaluateWithObject:email]){
//Valid email
}else{
//Wrong Email id
}
Мы можем проверить доменное имя, но мы не можем сказать, действительно ли это или нет, потому что доменное имя не фиксировано, например: - 1) [email protected]
Мы можем проверить конкретное доменное имя, так как адрес электронной почты содержит "gmail.com" или "yahoo.com"
Это не исправить, потому что формат доменного имени не исправлен.
Это могло быть так: -
Ниже я использую для проверки электронной почты.
NSString *emailRegex = @"^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
if (![emailTest evaluateWithObject:emailTF.text]) {
// wrong email
} else {
// right email...
}
Если вы хотите проверить домен, перейдите по ссылке ниже.
NSPredicate *websitePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^[A-Za-z0-9]+(.[A-Za-z0-9-:;\?#_]+)+"];
if ([websitePredicate evaluateWithObject:@"google.com"]) {
NSLog(@"valid domain");
} else {
NSLog(@"not valid domain");
}
Надеюсь, вы это ищете ...
Если вы ищете фактическую проверку имени домена (а не формата домена), вам следует следовать @trojanfoe ответ
Как предложил @trojanfoe, с помощью поиска записи MX вы можете проверить, является ли введенный домен почтовым сервером. Вот объективная c-версия поиска записи MX, вам нужно инициализировать DNSServiceRef
с помощью kDNSServiceType_MX
Тип Обслуживания.
Другой, наиболее надежный способ проверить, предоставил ли пользователь действительный адрес электронной почты, - это отправить электронное письмо с кодом подтверждения на введенный адрес электронной почты.
Удачи!
domain name valid
что ты имеешь в виду? вы просто хотите проверить, действительна ли электронная почта или нет? - person Fahim Parkar   schedule 03.02.2016<br/>gmail.com
действителен? - person Fahim Parkar   schedule 03.02.2016