0

MFMailComposeViewController を使用せずに電子メールを送信しようとしましたが、いくつかの調査の後、AFNetowrking がそれを行うための最良の方法だと思いますが、それを理解して機能させることができず、Web プログラミングにあまり慣れていません。

私は AFHTTPClient クラスを使用しています。ここで私がやったこと:

-(IBAction)sendMail
{
    NSURL *url = [NSURL URLWithString:@"http://flameapp.net"];
    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                            txtName, @"si_contact_name1",
                            txtSubject, @"si_contact_subject1",
                            txtEmail, @"si_contact_email1",
                            txtMessage, @"si_contact_message1"
                            ,nil];
    NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"/?page_id=26" parameters:params];

    AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:
                            [NSURL URLWithString:@"http://flameapp.net/?page_id=26"]];

    NSURLResponse *response = [[NSURLResponse alloc] init];
    [client postPath:@"/?page_id=26" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *text = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
        NSLog(@"Response: %@", text);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"%@", [error localizedDescription]);
    }];
}

前もって感謝します。

4

2 に答える 2

1

私は MFMailComposeViewController を使用しないことを真剣に考え直します。

もちろん、AFNetworking から直接電子メールを送信することはできません。AFNetworking を使用して、パラメーターを受け取り、電子メールを送信するサーバーと通信しているようです。その POST リクエスト エンドポイントを接続するのはあなた次第です。AFNetworking のすべてが問題ないように見えます (ただし、通常は POST リクエストにクエリ文字列を追加しませんが、これはおそらく別の POST パラメーターである必要があります)。

于 2012-06-11T15:10:23.463 に答える
0

どのような問題が発生していたのかはわかりませんが、成功ブロック内では、自動的に作成されresponseた変数ではなく、独自の (空の) 変数を使用しているようです。responseObject

つまり、次のことを行った場合、少なくともサーバーが何を返しているかがわかります。

NSString *text = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
于 2012-07-24T07:04:19.053 に答える