-1

您好,我正在为 iOS 编写一个 Objective-c 程序,我只想通过 ping 或对其执行 HTTP 请求来检查 smtp 服务器(在 @ 之后)是否存在并返回状态( 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!");
        }
4

2 回答 2

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。

于 2012-11-02T09:07:32.407 回答
0

我不确定你想在这里做什么。但也许你错过了一些东西:

@ 符号后面的部分不一定是 SMTP 服务器。SMTP 服务器是通过向 DNS 查询返回 SMTP 服务器的 MX 记录(邮件交换)来确定的。

在 Windows 上,您可以在命令行上执行以下操作:

nslookup -type=mx gmail.com

获取 SMTP 服务器。

有关详细信息,请参阅http://en.wikipedia.org/wiki/MX_record 。

于 2012-11-02T09:11:56.533 回答