标签: mfmailcomposeviewcontroller

使用mailto:URL发送电子邮件

有人可以帮助我使用以下代码吗?对于在iOS中发送电子邮件,下面的代码是好的还是我应该使用MFMailComposeViewController而不是这个?:

NSString *url = [NSString stringWithString: @"mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];NSString *url = [NSString stringWithString: @"mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
Run Code Online (Sandbox Code Playgroud)

它是一个可靠的发送邮件的代码吗?

cocoa cocoa-touch ios mfmailcomposeviewcontroller

2
推荐指数
1
解决办法
7603
查看次数

如何在电子邮件正文中的某些文本后设置第一个图像?

我使用MFMailComposeViewController发送电子邮件,

使用此代码,我可以获取图像,但图像来自文本详细信息,我不是第一个图像和文本之后,

这是我的代码,

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

    if ([MFMailComposeViewController canSendMail]) {
        //Setting up the Subject, recipients, and message body.
        [mail setToRecipients:[NSArray arrayWithObjects:Emailid,nil]];
        [mail setSubject:@"Receipt"];

        NSData *photoData = UIImageJPEGRepresentation([UIImage imageNamed:@"Gift.png"], 1);
        [mail addAttachmentData:photoData mimeType:@"image/jpg" fileName:[NSString stringWithFormat:@"photo.png"]];

        [mail setMessageBody:@"Receipt" isHTML:NO];
        NSString *emailBody;




        emailBody = [NSString stringWithFormat:@
                     "<br>Purchase Amount:            </br> "      "$  %@"
                     "<br>Amount Received:        </br> "      "$  %@"
                     "<br>Change:    </br> "      "$  %@"
                     ,AmountData,txtAmount.text,ChangeAmount.text];  


        [mail setMessageBody:emailBody isHTML:YES];
Run Code Online (Sandbox Code Playgroud)

请任何人建议我怎么办?

iphone cocoa-touch objective-c ios4 mfmailcomposeviewcontroller

2
推荐指数
1
解决办法
2687
查看次数

使用MFMailComposer发送CSV文件

我想使用带有.csv扩展名的NSString(已经制作)创建一个文件,然后使用UIMessage框架通过电子邮件发送它.那么有人可以告诉我创建文件的代码(带有.csv扩展名和NSString的内容)然后如何将它附加到MFMailComposeViewController.

xcode ios mfmailcomposeviewcontroller

2
推荐指数
1
解决办法
5611
查看次数

无法使用MFMailComposeViewController在应用程序中发送电子邮件

我有一个用于MFMailComposeViewController通过电子邮件发送文件的应用程序.我在某处读到了我需要启用至少一封电子邮件,以便该方法[MFMailComposeViewController canSendEmail]返回YES并通过电子邮件发送文档.但是,每当我点击电子邮件按钮时,它只会返回上一个视图.

我检查了代码并[MFMailComposeViewController canSendEmail]返回NO.谁能告诉我为什么会这样?

这是代码:

- (void)sendEmail
{
   if ([MFMailComposeViewController canSendMail] == NO) return;
   NSURL *fileURL = document.fileURL; NSString *fileName = document.fileName;

   NSData *attachment = [NSData dataWithContentsOfURL:fileURL options:(NSDataReadingMapped|NSDataReadingUncached) error:nil];

        if (attachment != nil) 
        {
            MFMailComposeViewController *mailComposer = [MFMailComposeViewController new];

            [mailComposer addAttachmentData:attachment mimeType:@"application/pdf" fileName:fileName];

            [mailComposer setSubject:fileName]; 

            mailComposer.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
            mailComposer.modalPresentationStyle = UIModalPresentationFormSheet;

            mailComposer.mailComposeDelegate = self; 

            [self presentModalViewController:mailComposer animated:YES];

            [mailComposer release];
        }
}
Run Code Online (Sandbox Code Playgroud)

ios mfmailcomposeviewcontroller

2
推荐指数
2
解决办法
7798
查看次数

如何使MFMailComposeViewController的状态栏具有白色文本(LightContent)?

在我看来,MFMailComposeViewController我的所有内容都遵循我的应用程序的外观和感觉,但无论出于何种原因,尽管我的状态栏在我的应用程序中的任何地方都有白色内容,当MFMailComposeViewController打开时它变成黑色.

是否可以将MFMailComposeViewController状态栏更改为轻量级内容?

objective-c uiview ios ios7 mfmailcomposeviewcontroller

2
推荐指数
1
解决办法
1702
查看次数

emailBody中的新行无法快速运行

我有这段代码用于显示emailMessageBody中的某些内容。代码如下。

var emailViewController : MFMailComposeViewController = MFMailComposeViewController()
        emailViewController.mailComposeDelegate = self
        emailViewController.setToRecipients(["----"])
        emailViewController.setSubject("----")
        emailViewController.setMessageBody("\n\n\n" + "-- \r\n " + "----- Device : \(self.deviceName), App Version : \(self.appVersion), Model : \(deviceModel) , iOS Version : \(self.deviceVersion), Country Code : \(self.countryCode), Localised Model : \(deviceLocalizedModel) \n \n \n", isHTML: true)
        self.presentViewController(emailViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

大家看到我在内容中加了“ \ n”,但在emailBody中未显示新行。如果有人知道如何在emailMessageBody中获得一些新行,请帮助。

xcode ios swift mfmailcomposeviewcontroller

2
推荐指数
2
解决办法
1520
查看次数

MFMailComposeViewControllerDelegate未被调用

我意识到这个问题已被不明确地问到了,但我一直无法找到问题的答案.

我有一个带静态单元格的UITableViewController.其中一个单元格用于打开Mail Composer视图,并在用户发送或取消电子邮件后通过委托将其关闭.我的问题是没有调用委托方法.这是我的代码:

class SideMenuTableViewController: UITableViewController, MFMailComposeViewControllerDelegate, UINavigationControllerDelegate {

 override func viewDidLoad() {
        super.viewDidLoad()

        mailCVP.delegate = self
mailCVP = configureMailComposeVC()
            if MFMailComposeViewController.canSendMail() {
                self.presentViewController(mailCVP, animated: true, completion: nil)
            } else { //..// }
}

func configureMailComposeVC() -> MFMailComposeViewController {
        let mailComposerVC = MFMailComposeViewController()
        mailComposerVC.setToRecipients(["momentosdetora@gmail.com"])
            mailComposerVC.setSubject("Contacto Momentos de Tora")

        return mailComposerVC
    }

func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
        controller.dismissViewControllerAnimated(true, completion: nil)
    }
Run Code Online (Sandbox Code Playgroud)

任何人都可以发现我可能做错的事吗?

谢谢.

ios swift mfmailcomposeviewcontroller

2
推荐指数
2
解决办法
1196
查看次数

如何关闭MFMailComposeViewController?

我想从我的Swift应用程序发送一封电子邮件,它运行良好,它会发送电子邮件.

然而,在发送电子邮件后,布局不会退出.我想在发送电子邮件后退出布局.当我按下取消,删除草稿或保存草稿按钮时,我也想要这种行为.

这是我发送电子邮件的代码(按下按钮后):

@IBAction func btnSendEmailAction(_ sender: AnyObject) {

    let composeVC = MFMailComposeViewController()
    composeVC.mailComposeDelegate = self

    composeVC.setToRecipients(["mymail@mail.com"])
    composeVC.setSubject("Hello!")
    composeVC.setMessageBody("Hello World!", isHTML: false)

    self.present(composeVC, animated: true, completion: nil)
}

func mailComposeController(controller: MFMailComposeViewController,
                           didFinishWithResult result: MFMailComposeResult, error: NSError?) {

    switch result {

    case MFMailComposeResult.cancelled:
        controller.dismiss(animated: true, completion: nil)
        break

    case MFMailComposeResult.sent:
        controller.dismiss(animated: true, completion: nil)
        break

    case MFMailComposeResult.failed:
        controller.dismiss(animated: true, completion: nil)
        break

    default:
        break
    }

    controller.dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

但是当我按下取消或发送按钮时,布局不会退出.

我知道有很多关于这个问题的问题,但我看了很多,这是我可以从其中一些混合得到的代码.请注意,它们中的大多数都是Objective而不是Swift(有时这些方法不存在).

示例:iPhone:如何关闭MFMailComposeViewController?

我错过了我的代码吗?如何检测删除草稿和保存草稿事件?

提前致谢!

email ios swift mfmailcomposeviewcontroller

2
推荐指数
1
解决办法
1128
查看次数

1
推荐指数
1
解决办法
393
查看次数

Mail Composer无法从UIPreviewAction启动

在我的Peek视图的视图控制器中我有一个应用程序:

- (NSArray*)previewActionItems {  

    /  
    UIPreviewAction *action1 = [UIPreviewAction actionWithTitle:@"Post to Facebook" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {  


    }];  

    UIPreviewAction *action2 = [UIPreviewAction actionWithTitle:@"Message" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {  


    }];  

    UIPreviewAction *action3 = [UIPreviewAction actionWithTitle:@"Email" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {  
        [self displayComposerSheet];  


    }];  

    /  
    NSArray *actions = @[action1, action2, action3];  

    /  
    return actions;  
} 
Run Code Online (Sandbox Code Playgroud)

这成功地允许我在3D Touch之后拉出一张预览动作.displayComposerSheet是:

-(void)displayComposerSheet  
{  
    NSLog(@"Mail Button Pressed");
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios 3dtouch mfmailcomposeviewcontroller

1
推荐指数
1
解决办法
556
查看次数