2012-08-28 2 views
1

저는 iPhone 개발을 처음 사용합니다. 나는내 응용 프로그램을 통해 전자 메일을 보낼 수 없습니다.

- (IBAction)btnsendPressAction:(id)sender { 

    if([MFMailComposeViewController canSendMail]){ 

     MFMailComposeViewController *mailer=[[MFMailComposeViewController alloc]init]; 
     mailer.mailComposeDelegate=self; 
     [mailer setSubject:@"A Message for testing"]; 
     NSArray *toRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil]; 
     [mailer setToRecipients:toRecipients]; 

     UIImage *image=[UIImage imageNamed:@"logo.png"]; 
     NSData *imageData=UIImagePNGRepresentation(image); 
     [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"logo.png"]; 
     NSString *[email protected]"This is test email"; 
     [mailer setMessageBody:emailBody isHTML:NO]; 
     [self presentModalViewController:mailer animated:YES]; 
     mailer.modalPresentationStyle = UIModalPresentationPageSheet ; 


    } 
    else{ 

     UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"failure" message:@"Alert" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
     [alert show]; 
    } 
} 

내 문제는 대리인이 전화 받고되지 mailComposeController 내가 통해 이메일을 보낼 수 없습니다입니다 내 app.I 겪은 다음 코드를 사용하고 내가 email.I을 보낼 수있는 응용 프로그램을 건물입니다 많은 링크가 있지만, 모든 곳에서 같은 방법을 발견했습니다. 아무도 이것에 나를 도울 수 있습니까?

+0

위임자를위한 적절한 메서드를 내 코드에 추가했습니다.이 코드는 여기에 넣지 않았습니다. – Raj

+0

사용중인 장치에 메일 ID가 구성되어 있는지 확인하십시오. – Dhruv

+0

시뮬레이터를 테스트하고 구성하는 방법을 알고 있습니까? – Raj

답변

2

당신은 시뮬레이터에서 이메일을 보낼 수 없습니다입니다. Mail 응용 프로그램에서 구성된 모든 계정으로 iOS 장치에서만이 기능을 확인할 수 있습니다.

+0

좋아요. 한 번만 실제 장치를 확인하고 다시 돌아올 것입니다. – Raj

+0

그게 제대로 작동하는지 확인하는 것을 잊지 마십시오. :) – BornCoder

+0

그래, 괜찮아. 내가 장치에 그것을 테스트하는 데 시간이 좀 걸릴지 모르겠지만 지금은 장치가 없다. – Raj

0

여기에이 link을 사용하고 기기에 계정을 추가 (구성)하면 메일 만 보낼 수 있습니다.

if ([MFMailComposeViewController canSendMail]) { 
    self.mailController = [[MFMailComposeViewController alloc] init]; 
    [self.mailController setSubject:@"Invitation"]; 
    [self.mailController setMessageBody:@"Message" isHTML:NO]; 
    self.mailController.mailComposeDelegate = self; 

    [self presentModalViewController:self.mailController animated:YES]; 
} 

만합니다

+0

그러면 위임자는 그렇게 할 수 있습니까? – trojanfoe

+0

당신은 그 코드를 사용할 수 있습니다. 그것은 나를 위해 일하고 있습니다. 당신은 대리인을 설정하고 같은 시간을 준수해야합니다. MFMailComposerDelegate.i가 하나 있습니다. 그게 뭐가 잘못되었는지 말해 주시겠습니까? – Sandy

-1

이봐, 내가 확실하지 오전하지만 도움이 될 수있다, 당신의 마지막 줄

mailer.modalPresentationStyle = UIModalPresentationPageSheet ; 

[self presentModalViewController: mailer animated:YES]; 
+0

첫 번째 줄에 코드를 확인할 때 내 앱에서 개인적으로 테스트했습니다. 메일보기가 표시되지 않습니다. 내 두 번째 라인을 시도 할 때 슈즈 액션 시트이고 메일을 보낼 수도 있습니다. 그래서 그것은 downvoted 대답이 아니에요 – Hiren

0

이 조각 날 위해 노력하고 있습니다로 교체 인터페이스에 대리자를 구현하고 있는지 확인하십시오.

@interface MyClass() <MFMailComposeViewControllerDelegate> 

및 콜백 방법 확인 :

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
} 
+0

시뮬레이터에서 작동합니까 ?? – Raj

+0

및 코드에서받는 사람 주소는 어디에 있습니까? – Raj

+0

예, 시뮬레이터에서 작동하지만 내 대리자가 호출되지만 전자 메일 계정에 전자 메일을 보내지 마십시오. MFMailComposeViewController 속성을 만들려고합니다. 아마도 ARC가 대리인 또는 sth를 보내는 mailViewController를 배제합니다. 코드에서받는 사람 주소가 필요 없으며 주소록에서 선택하거나 수동으로 입력 할 수 있습니다. – mientus

관련 문제