-3

在我的 iphone 应用程序中,在 MFMailComposer 中,我正在添加一个附件。该附件作为 url 链接。在该链接中有一个 pdf 文件。当我单击发送时,url 链接不会发送到目标邮件地址。

我正在使用此代码

  -(void)sendMail
 {
    MFMailComposeViewController *mailView= [[MFMailComposeViewController alloc] init];
    mailView.mailComposeDelegate=self;
    [mailView setSubject:titleString];
    NSArray  *array = [[NSArray alloc]initWithObjects:emailString, nil];
    [mailView setToRecipients:array];
    NSData *textData = [NSData dataWithContentsOfFile:self.fileString];
    [mailView addAttachmentData:textData mimeType:@"text/plain" fileName:self.fileString];

    [mailView setMessageBody:self.templatetextstring isHTML:YES];
    [self presentModalViewController:mailView animated:YES];
 }
4

2 回答 2

2

使用此代码

NSString *link = [NSString stringWithFormat:@"http://www.google.com"];
[controller setMessageBody:[NSString stringWithFormat:@"<p><font size=\"2\" face=\"Helvetica\"><a href=%@></br>%@</br></a></br></font></p>",link,@"Google"] isHTML:YES];

希望对你有帮助。。

于 2013-01-03T13:49:17.353 回答
1

我不确定我是否理解您的问题,您可能是要附加 pdf 文档还是只想添加指向 pdf 文档的链接,所以我会回答这两个问题。这是我用来将 pdf 数据附加到电子邮件的代码

- (void)emailFile
{
    if(![MFMailComposeViewController canSendMail]) {
        UIAlertView *cantSend = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Device not configured to send email" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
       [cantSend show];
    } else {
        MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
        mailView.mailComposeDelegate = self;

        [mailView setSubject:@"PDF Attached to email"];

        // Adding an actual PDF document to the email.
        [mailView addAttachmentData:(__bridge NSData *)myPDFData mimeType:@"pdf" fileName:@"AttachedPDFDocument"];

        [mailView setMessageBody:[NSString stringWithFormat:@"Sending %@. This email maybe sent as junk mail",fileName] isHTML:NO];
        [self presentModalViewController:mailView animated:YES];
     }
}

请注意,我添加的是 pdf 数据而不是实际的 pdf,然后我将扩展名 (MimeType) 设置为 pdf,然后设置文件的名称,将附件添加到您正在构建的电子邮件中非常简单。

要将链接添加到电子邮件,就像

    - (void)emailFile
{
    if(![MFMailComposeViewController canSendMail]) {
        UIAlertView *cantSend = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Device not configured to send email" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
       [cantSend show];
    } else {
        MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
        mailView.mailComposeDelegate = self;

        [mailView setSubject:@"PDF Link added in HTML"];

        // Adding a HTML Link to an email. Remembering to set the Message to allow HTML.
        NSString *link = [NSString stringWithFormat:@"http://www.google.com"];
        [mailView setMessageBody:[NSString stringWithFormat:@"<p><font size=\"2\" face=\"Helvetica\"><a href=%@></br>%@</br></a></br></font></p>",link,@"Google"] isHTML:YES];

        [self presentModalViewController:mailView animated:YES];
     }
}

请注意,您没有附加任何数据,您将其设置setMessage为使用 HTML,而第一个示例不使用 HTML。现在,这将允许您NSString在包含 html 元素的消息正文中设置一个。

编辑

myPDFData 是CFDataRef我从网络服务下载的 PDF 的数据内容之一,然后用户可以通过电子邮件将其转发给自己。如果您正在使用,ARC那么您需要在(__bridge NSData *)myPDFData设置附件数据时添加网桥。

希望这可以帮助。

于 2013-01-03T13:56:36.747 回答