2011-12-08 104 views
1

我最近向蘋果提交了一個應用程序,很遺憾它被拒絕了。給出的原因是它有一個電子郵件給朋友功能,這是行不通的。 (不用說,但它在我的設備上效果很好)。我正在使用MFMailComposeViewController,填充主題和正文並添加附件。用戶然後必須採取行動的其餘部分發送。當我問擬訂評論家說...使用MFMailComposeViewController發送失敗的郵件

我們與您的應用程序發送的電子郵件在Gmail的上市,而雅虎,測試帳戶「發件箱」,有一個錯誤,說明發送郵件服務器無法被達到。

......這應該算作我的應用程序的錯誤嗎?我實際上並沒有發送郵件,我只是使用內置的SDK調用來準備郵件。我知道「這是你的設備」的論點不會真正推動我獲得我的應用批准,​​但我真的認爲這是他們的設備。

任何人都可以想到任何電子郵件會失敗的原因,這樣的消息和這些原因,我可以做的任何事情呢?

而現在我的代碼...

...這裏我將消息發送

- (void)sendMail 
{ 
    NSData *vCards = (NSData *)ABPersonCreateVCardRepresentationWithPeople((CFArrayRef)self.selections); 

    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
    mc.mailComposeDelegate = self; 

    [mc setSubject:@"Contact"]; 

    [mc setMessageBody:@"<p>My message...<p>" isHTML:YES]; 
    NSString *label = ([self.selections count] == 1)? (NSString *)ABRecordCopyCompositeName([self.selections objectAtIndex:0]): @"Contacts"; 

    [mc addAttachmentData:vCards mimeType:@"text/x-vcard" fileName:label]; 

    [self presentModalViewController:mc animated:YES]; 
    [mc release]; 
} 

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { 
    switch (result) { 
     case MFMailComposeResultCancelled: 
      NSLog(@"Mail send canceled."); 
      break; 
     case MFMailComposeResultSaved: 
      NSLog(@"Mail saved."); 
      break; 
     case MFMailComposeResultSent: 
      NSLog(@"Mail sent."); 
      break; 
     case MFMailComposeResultFailed: 
      NSLog(@"Mail send error: %@.", [error localizedDescription]); 
      break; 
     default: 
      break; 
    } 
    [self dismissModalViewControllerAnimated:YES]; 
} 

現在我明白了,我不是真正在做什麼有用的,如果該消息失敗,而應該是如果郵件在撰寫級別失敗,甚至會收到用戶的發件箱郵件?

我打算提交另一個版本,提醒錯誤的詳細信息,但我懷疑會有任何。

+1

我在應用程序中使用了幾乎相同的代碼,並且工作正常。這個裁決看起來很苛刻,與您的應用無關。您是否提出上訴,暗示其測試設備上的電子郵件帳戶設置不正確? – onnoweb

+0

我唯一的附加功能是檢查設備是否可以發送電子郵件,使用[MFMailComposeViewController canSendMail] – onnoweb

+0

謝謝onnoweb,我剛剛提交了一個上訴。由於ABPersonCreateVCardRepresentationWithPeople我無論如何都需要iOS 5,所以它應該能夠發送郵件而不管。會讓你知道它是如何工作的。 – rob5408

回答

0

昨晚在我的iPhone上,我從iTunesConnect收到通知,說我的應用程序在審覈>等待審覈> App Store處理>準備出售,所有這些都在迅速接連發生。解析中心沒有進一步的說明,我也沒有收到Apple發送的其他關於此問題的電子郵件。我很高興這一切都已經解決,但仍然有一個持續的懷疑,即一些邊緣病例的bug將會導致我死亡的一個明星。對不起,決議太無聊了。

這是我店裏的應用程序:http://itunes.apple.com/us/app/cloner/id483981001?mt=8(plug)。感謝每個人的偉大建議。

1

這可能只是一個模糊的拒絕原因,源於你不處理髮送錯誤的事實。我有一個非常類似的反饋實施。我會考慮顯示警告,說明原因是什麼,並讓用戶再試一次。蘋果會檢查你幾乎所有的可能性。

+0

謝謝比爾,我已經提交了上訴,他們要求您在審覈期間不要更改構建。我很好,如果原因是我沒有處理錯誤,但他們應該聲明拒絕推理,而不是模糊的「電子郵件不發送」消息。 – rob5408

+0

我同意。但這是我們付錢成爲酷兒俱樂部會員的價格。 ;)與上訴祝你好運。 –

3

我已經做了類似的事情,你可以嘗試不發送電子名片嗎?告訴我它是否能正常工作...

+0

在我的測試過程中,它工作正常。同時發送電子名片是應用程序的主要部分,所以我不想提交沒有它的版本。 – rob5408

+0

我有同樣的問題,我添加了.vcf擴展名的文件名(標籤),它工作正常...嘗試一下,這可能是問題... – Issa

+0

真的很好的建議,我會給這個去一個。 – rob5408