【问题标题】:How to send a label's text as an email attachment?如何将标签的文本作为电子邮件附件发送?
【发布时间】:2012-11-14 20:48:33
【问题描述】:

我想在电子邮件中附加标签文本, 如何将 UILabel 中的文本作为电子邮件附件发送?

这是我正在使用的代码:

-(IBAction)send:(id)sender {

    if ([MFMailComposeViewController canSendMail])
    {
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 100)];
        label.numberOfLines = 0;
        label.textAlignment = UITextAlignmentCenter;
        label.text = @"text";

        [self.view addSubview:label];
        [label release];

        MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];

        mailer.mailComposeDelegate = self;
        [mailer setSubject:@"Subject"];

        NSString *fileName = @"my file.txt";
        NSArray  *paths =   NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:fileName];

        NSData *myData = [NSData dataWithContentsOfFile:path];
        [mailer addAttachmentData:myData mimeType:@"text/plain" fileName:fileName];

        // Fill out the email body text
        NSString *emailBody = @"Email Body";

        [mailer setMessageBody:emailBody isHTML:NO];

        [self presentModalViewController:mailer animated:YES];

        [mailer release];
    }
    else
    {
        UIAlertView *alertm = [[UIAlertView alloc] initWithTitle:@"Failure"
                                                         message:@"Please make sure that your   email application is open"
                                                        delegate:nil
                                               cancelButtonTitle:@"OK"
                                               otherButtonTitles: nil];
        [alertm show];
        [alertm release];
    }
}

如何链接该标签以将其附加到电子邮件?

我们将不胜感激。

【问题讨论】:

  • 您想以什么格式发送? .txt 文件?
  • @woz 他要求发送 self.label.text 而不是磁盘上的某个文件
  • @woz 我的问题是使用此代码我可以在邮件视图控制器打开时看到附件.txt,但是当收到的电子邮件中没有任何内容时,我不知道为什么。你能帮帮我吗?

标签: iphone ios xcode sdk email-attachments


【解决方案1】:

你快到了。

-- 从文件中读取文本并附加它

===

不是从文件中读取数据,而是从标签本身中读取数据

NSData *data = [self.label.text dataUsingEncoding:NSUTF8Encoding];

【讨论】:

  • 所以这意味着我需要替换: NSData *myData = [NSData dataWithContentsOfFile:path];用你的代码。但我认为如果这样做,我的代码中声明的(路径)会出错,还是我错了?
【解决方案2】:

您可以将标签文本添加到正文。

        NSString *emailBody = [NSString stringWithFormat:@"Your Voice File Attached. %@", label.text];

类似的东西

【讨论】:

  • 我想把它添加为附件,这样它就不能编辑了。
  • 啊,对不起。那么我认为您必须将标签文本添加到“file.txt”文件中。
  • 或者附加一个带有 label.text 的 .txt 文件
  • 对不起,我没有得到你的建议,你能给我一个代码吗?
猜你喜欢
  • 2021-02-04
  • 2021-07-18
  • 2023-03-23
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
相关资源
最近更新 更多