你好我正在使用Objective-c为iOS制作一个程序,我想只检查smtp服务器(在@之后)是否存在ping它或对它做一个HTTP请求并获得返回状态( 200)。
我正在做什么现在它正在获取UITextField.text,剪切它,在@之后获取子字符串并执行此操作......但它无效...
NSError *error = nil;
NSURL *url = [NSURL URLWithString:@"gmail.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];;
NSURLResponse *response = nil;
NSData *data=[[NSData alloc] initWithData:[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]];
NSString* retVal = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// you can use retVal , ignore if you don't need.
NSInteger httpStatus = [((NSHTTPURLResponse *)response) statusCode];
NSLog(@"responsecode: %d", httpStatus);
// there will be various HTTP response code (status)
// you might concern with 404
if(httpStatus == 200)
{
NSLog(@"FEELIX CONTENT");
// do your job
}
else
{
NSLog(@"FOCK!");
}
答案 0 :(得分:0)
如果您有域,则该域的邮件服务器由MX DNS记录指定。例如:
$ host -t MX gmail.com
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.
gmail.com mail is handled by 30 alt3.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 40 alt4.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 20 alt2.gmail-smtp-in.l.google.com.
该号码是优先指示。要检查服务器,请检查是否可以连接到该服务器的端口25。
答案 1 :(得分:0)
我不确定你在这里要做什么。但也许你错过了一些东西:
@符号后面的部分不一定是SMTP服务器。 通过查询DNS以获取返回SMTP服务器的MX记录(邮件交换)来确定SMTP服务器。
在Windows上你可以在命令行上执行:
nslookup -type=mx gmail.com
获取SMTP服务器。
有关详细信息,请参阅http://en.wikipedia.org/wiki/MX_record。