2012-01-09 8 views
0

添付ファイルとして電子メールで収集したデータを送信するアプリがあります。私は作成し、私のdocsフォルダの 'leads.xml'と呼ばれるファイルにデータを保存するために、次のコードを使用します。保存したテキストファイルを電子メールの添付ファイルとして送信するには

NSArray *sysPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *sysFilePath = [sysPath objectAtIndex:0]; 
[picker addAttachmentData:sysFilePath mimeType:@"text/xml" fileName:@"leads.xml"]; 

. 
. 
. 

[emailBody writeToFile:filePath atomically:YES]; 

私は、このコードを使用して添付ファイルとして保存されたファイルを送信しよう -

NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docDirectory = [sysPaths objectAtIndex:0]; 
NSString *filePath = [NSString stringWithFormat:@"%@/leads.xml", docDirectory]; 

私はエラーを取得し、それを実行すると、私が間違って何をやっていますか?

+0

での作業...? – DShah

答えて

0

メールはNSDataオブジェクトを必要とし、ファイルの内容にパスは含まれません。あなたがデータを提供する必要が

NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docDirectory = [sysPaths objectAtIndex:0]; 
NSString *filePath = [docDirectory stringByAppendingPathComponent:@"leads.xml"]; 

NSData *fileData = [NSData dataWithContentsOfFile:filePath]; 
[picker addAttachmentData:fileData mimeType:@"text/xml" fileName:@"leads.xml"]; 
0

、ないファイルパス:

NSData *data = [NSData dataWithContentsOfFile:sysFilePath]; 
[picker addAttachmentData:data mimeType:@"text/xml" fileName:fileName]; 

ドキュメント:

- (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename 

添付 あなたはNSDataオブジェクトのようにファイルをロードする必要があります:

データを添付する。通常、これは含めるファイルの内容です。このパラメータはnilであってはなりません。

0

は、私がここに代わりの画像を送っています、あなたのテキストファイルを送信することができ、このコード

if(mailController) 
      { 
       mailController.mailComposeDelegate = self; 
       // NSLog(@"current index:%d",currentIndex_); 
       NSString *string = [NSString stringWithFormat:@"00%d",currentIndex_+43]; 
       // NSLog(@"string:%@",string); 
       NSString *imageIndex = [[NSBundle mainBundle] pathForResource:string ofType:@"jpg"]; 

       NSData *myData = [[NSData alloc] initWithContentsOfFile:imageIndex]; 

       [mailController addAttachmentData:myData mimeType:@"application/jpg" fileName:@"Report"]; 
       [mailController setSubject:@"your subject"]; 
       [mailController setMessageBody:@"" isHTML:NO]; 
       [self presentModalViewController:mailController animated:YES]; 
       [mailController release]; 
      } 

を試してみてください。 これは...あなたの事の

0

カップル

を助けるかもしれないあなたはでシミュレータ用のファイルシステムをチェックすることができます。

~/Library/Application Support/iPhone Simulator/5.0/Applications/... 

、あなたが期待する場所、ファイルが実際に保存されているかどうかを確認します。

第2の事柄: NSStringには実際にはファイルパスを扱うための便利な方法がありますので、後続のスラッシュやその他の迷惑メールを確認する必要はありません。ファイルパスを操作するときは、常にそれらを使用する必要があります。

パスあなたが取得しているエラー

+ pathWithComponents: 
– pathComponents 
– completePathIntoString:caseSensitive:matchesIntoArray:filterTypes: 
– fileSystemRepresentation 
– getFileSystemRepresentation:maxLength: 
– isAbsolutePath 
– lastPathComponent 
– pathExtension 
– stringByAbbreviatingWithTildeInPath 
– stringByAppendingPathComponent: 
– stringByAppendingPathExtension: 
– stringByDeletingLastPathComponent 
– stringByDeletingPathExtension 
– stringByExpandingTildeInPath 
– stringByResolvingSymlinksInPath 
– stringByStandardizingPath 
– stringsByAppendingPaths: 
+0

問題は、ファイルパスの構築ではなく、ファイルデータの電子メールへの追加にあります。 – rckoenes

関連する問題