2013-03-21 4 views
0

У меня есть приложение, где люди могут заполнить некоторые данные и отправить их на мой адрес электронной почты. Почта отправляется и работает нормально, за исключением того, что тело письма пуст.электронная почта с помощью сервера

Мой метод для связи:

-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { 

    if(!(buttonIndex == [actionSheet cancelButtonIndex])) { 

     NSString *post = nil; 
     post = [[NSString alloc] initWithFormat:@"Naam spel = %@ Uitleg= %@", spelnaam.text ,Uitleg.text]; 
     NSLog(@"dit wordt verstuurd %@", post); //works fine! 

     NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
     NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
     NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
     [request setURL:[NSURL URLWithString:@"http://www.myserver.nl/theemailfile.php"]]; 
     [request setHTTPMethod:@"POST"]; 
     [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
     [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
     [request setHTTPBody:postData]; 
     [ NSURLConnection connectionWithRequest:request delegate:self ]; 

     [post release]; 
     [self displayAlert]; 
    } 
} 

Мой файл PHP:

<?php 
$message = $_REQUEST['message'] ; 
mail("[email protected]", "Test Message", $message); 
?> 
+0

Вы должны изолировать это ли ваш клиент приложение, или это ваш сервер. У вас есть контроль над обоими, да? Во-первых, убедитесь, что определенные «postData'» не являются нулевыми, прежде чем вы выполните «NSURLConnection» (например, установите точку останова в Xcode). –

+0

Почему вы не используете встроенный почтовый API для отправки электронной почты? –

+0

Со встроенной почтой Api пользователь должен иметь включенную учетную запись электронной почты. –

ответ

2

В запросе HTTP, вы хотите сказать, что информация, которую вы посылаете в теле запроса является типа application/x-www-form-urlencoded, однако это не так. Кажется, это просто текст свободной формы. Вы должны соответствовать the format described in the HTML specification. Вы отправляете сообщение, которое выглядит следующим образом:

Naam spel = test Uitleg= test 

Вам нужно отправить что-то вроде этого:

message=This+is+a+test&other=test 
+0

Ну, это сообщение «строка», в которой содержится naam и uitleg. –

+0

Получил это благодаря работе! –

Смежные вопросы