-1

こんにちは私はiOS用のobjective-cでプログラムを作成しています。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!");
        }
4

2 に答える 2

0

ドメインがある場合、そのドメインのメールサーバーはMXDNSレコードによって指定されます。例えば:

$ 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 サーバーは、SMTP サーバーを返す MX レコード (Mail Exchange) を DNS に照会することによって決定されます。

Windows では、コマンドラインで次のことができます。

nslookup -type=mx gmail.com

SMTP サーバーを取得します。

詳細については、 http://en.wikipedia.org/wiki/MX_recordを参照してください。

于 2012-11-02T09:11:56.533 に答える