2

生成されたレポート(csv)を送信するためにMFMailComposeViewControllerを使用しました。

これでメールはTo:email idに送信されますが、メールを確認したところ、メールは受信されましたが、添付ファイルがありませんでした。

次に、MailComposerの例も試しました。

https://developer.apple.com/iphone/library/samplecode/MailComposer/index.html

png画像がメールデモに添付されています。そのアプリを使ってメールも送ったのですが、同じ結果の画像添付が配信されません。

助けて、何が問題なのかを見つけますか?前もって感謝します。

そのアプリのコードは次のとおりです。

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

[picker setSubject:@"Hello from California!"];


// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"first@example.com"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com"]; 

[picker setToRecipients:toRecipients];
[picker setCcRecipients:ccRecipients];  
[picker setBccRecipients:bccRecipients];

// Attach an image to the email
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"png"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"rainy"];

// Fill out the email body text
NSString *emailBody = @"It is raining in sunny California!";
[picker setMessageBody:emailBody isHTML:NO];

[self presentModalViewController:picker animated:YES];
[picker release];
4

5 に答える 5

3

私の場合、iPhone からは問題なくメールが送信されましたが、妻の iPhone から送信すると添付ファイルがありませんでした。彼女のデフォルト アカウントは Yahoo アカウントに設定されていて、添付ファイルを許可していなかったことが判明しました。それを彼女のモバイル Me アカウントに切り替えるだけで、添付ファイルが作成されました。私はGmailを使用しているので、問題はありませんでした。

さらに、MIME タイプを text/csv から text/plain に切り替えてみましたが、役に立ちませんでした。私のiPhoneではどちらの方法でも機能しましたが、妻のiPhoneではまったく機能しませんでした.

お役に立てれば!

于 2010-08-18T03:57:30.110 に答える
1

私は同じ問題に遭遇し、私が書いた 2 つの関数をよく調べて問題を修正しました。

1 つは .plist ファイルからファイル名を定義し、もう 1 つは実際にファイルの場所 (パスとファイル名を含む) を設定します。

適切な関数を使用して MFMailViewController でファイル名を取得すると、問題が修正されました。

    -(NSString *)dataFilePath { //this gets the ,plist file
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

return [documentsDirectory stringByAppendingPathComponent:kFilename];

//----------------------------

    -(NSString *)fileName { // this defines the fileName from the values in the .plist

NSString *patientDetails = [self dataFilePath];
NSArray *dataArray = [[NSArray alloc] initWithContentsOfFile:patientDetails];

NSString *firstName = [dataArray objectAtIndex:0];
NSString *lastName = [dataArray objectAtIndex:1];

NSString *fileName = [firstName stringByAppendingString:lastName];

return [fileName stringByAppendingString:@".csv"];

//-------------------------

     -(NSString *)setFileLocation {  //this puts name and folder together.  

NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *fileName = [self fileName];   
NSString *fullFilePath = [NSString stringWithFormat:@"%@/%@", docDirectory,fileName];
  // NSLog(@"Filepath is : %@",fullFilePath);
return fullFilePath;

}

//-------------------------

最後の 1 つは、MFMailComposeViewController で呼び出す関数です。

     ...
NSData *csvData = [NSData dataWithContentsOfFile:[self setFileLocation]]; 
    [picker addAttachmentData:csvData mimeType:@"text/csv" fileName:fileName];
     ...

もちろん、fileName は NSString であり、fileName 関数を呼び出すことによって取得されます。 NSString *fileName = [self fileName];

お役に立てれば!

于 2011-09-20T06:39:11.510 に答える
1

「text/plain」で .csv ファイルを添付しようとしましたが、成功しました。あなたも同じことを試してみるべきだと思います。幸運を祈ります。

于 2009-12-03T22:28:31.617 に答える
0

コードに問題がないように見える場合myDataは、データが読み込まれなかったと思われますnil。を挿入するNSLog([myData description])か、デバッガーを使用して、myDataそうでないことを確認しますnil

于 2009-11-21T10:26:09.780 に答える
0

私はアイデアがありません。この状況で立ち往生した場合は、提供されたサンプル コードを使用してスタンドアロン プロジェクトを作成し、それが機能するかどうかを確認します。通常、これらの状況では、注目しているコードはおそらく正しく、エラーは別の場所から発生しています。

また:

  • 添付ファイルが表示されない原因となるため、パス変数が nil であるかどうかを確認してください。
  • メール作成ビューのメッセージ本文にアイコンがあることを確認してください。添付ファイルを正常に追加すると、ビューにアイコン表現が表示されます。
  • fileNameそして、おそらくをrainy.pngに設定したいと思うでしょう[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"rainy.png"]

幸運を。

于 2009-11-22T06:32:48.810 に答える