有人可以帮助我使用以下代码吗?对于在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)
它是一个可靠的发送邮件的代码吗?
我使用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
我想使用带有.csv扩展名的NSString(已经制作)创建一个文件,然后使用UIMessage框架通过电子邮件发送它.那么有人可以告诉我创建文件的代码(带有.csv扩展名和NSString的内容)然后如何将它附加到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) 在我看来,MFMailComposeViewController我的所有内容都遵循我的应用程序的外观和感觉,但无论出于何种原因,尽管我的状态栏在我的应用程序中的任何地方都有白色内容,当MFMailComposeViewController打开时它变成黑色.
是否可以将MFMailComposeViewController状态栏更改为轻量级内容?
我有这段代码用于显示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中获得一些新行,请帮助。
我意识到这个问题已被不明确地问到了,但我一直无法找到问题的答案.
我有一个带静态单元格的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)
任何人都可以发现我可能做错的事吗?
谢谢.
我想从我的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?
我错过了我的代码吗?如何检测删除草稿和保存草稿事件?
提前致谢!
IS MFMailComposeViewController在ipod 3.0上工作?
在我的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) mfmailcomposeviewcontroller ×10
ios ×8
objective-c ×3
swift ×3
cocoa-touch ×2
iphone ×2
xcode ×2
3dtouch ×1
cocoa ×1
email ×1
ios4 ×1
ios7 ×1
uiview ×1