Clickable link (Hyperlink)? - ios

I'm sorry if this is a stupid question but I cannot find a answer. Is there a way to create a clickable link say in a MFMailComposeController or in any other NSString? I just want it to be blue and the user will be able to click it and it will go to that link.
Thanks!

in the mail msg body try this - [mailComposer setMessageBody:msg isHTML:YES];. So when you put the message compose it of HTML & put this setting so that the mail is sent as HTML...
MFMailComposeViewController *mailComposer;
mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
[mailComposer setModalPresentationStyle:UIModalPresentationFormSheet];
[mailComposer setSubject:#"Mail subject"];
[mailComposer setMessageBody:msg isHTML:YES];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
return;

Related

Attaching UIImage to email iOS

I am trying to email a UIImage from my app. In my app I take a picture and then set a UIImageView to the picture that was just taken. Then I have a button which should email that picture as an attachment, like this:
- (IBAction)emailPhoto:(UIButton *)sender {
sendImage = imageView.image;
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
[composer setMailComposeDelegate:self];
if([MFMailComposeViewController canSendMail]) {
[composer setToRecipients:[NSArray arrayWithObjects:#"JanJaap#Korteweg.nl",nil]];
[composer setSubject:#"A nice subject"];
[composer setMessageBody:#"Hi,\n\nI'm sending you this beautiful photograph." isHTML:NO];
[composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
NSData *data = UIImageJPEGRepresentation(sendImage,1);
[composer addAttachmentData:data mimeType:#"image/jpeg" fileName:#"Photograph.jpg"];
[self presentViewController:composer animated:YES completion:nil];
}
}
For some reason when I call this I get the composer window but it remains kind of greyed out and I can't edit anything (put in email address, type in body, etc). Also no attachment shows up. I deleted the image code and tried again and it all worked so the problem is somewhere in my handling of the image, but I am at a loss as to what that might be and I get no errors at all or warnings. I have tried a number of other strategies including bas64 encoding and saving the photo to the photo library and then retrieving it but they seem too complicated and result in never ending chains of warnings and errors. Any help appreciated. Thanks!

MFMailComposerViewController Object is not getting allocated in iPad but works fine in simulator

When ever I alloc/init MFMailComposerViewController it's not allocated, and the object is nil. The app crashed when presenting mailViewController. Here's my code:
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:#"Photos"];
NSString *body = [NSString stringWithFormat:#"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"
"<html>"
"<head>"
"<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">"
"</head>"
"<body>"
"%#"
"</body>"
"</html>",[NSString stringWithFormat:#"Picture from %#",APP_NAME]];
[picker setMessageBody:body isHTML:YES];
NSData* data = UIImagePNGRepresentation(self.sharedImage);
[picker addAttachmentData:data mimeType:#"image/png" fileName:APP_NAME];
[self presentViewController:picker animated:YES completion:nil];
Step 1: I think First you need add account from settings of device. If you have not added account from settings then you will get this type of issue.
And Step 2: Propertise and synthesise your MFMailComposeView ControllerObject

Displaying pdf document in MFMailComposeViewController

I've read posts that say the the `MFMailComposeViewController should display your attached PDF if its a 1 page document but for some reason my PDF is always showing up as just an icon. I want it to display the PDF since its only 1 page. The PDF seems to be fine since I can send the email and I can open it in the mail app or on my computer.
Is this not enabled by default in iOS 6.0 or later or is there something im missing?
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
// create the message body.
NSMutableString *body = [[NSMutableString alloc] init];
// add the user name to the email body.
[body appendFormat:#"Name: %#", userName];
// add the pdf to the email.
NSData *data = [NSData dataWithContentsOfFile:path];
[controller addAttachmentData:data mimeType:#"application/pdf"
fileName:#"test.pdf"
includeExtension:YES]];
// add the body string to the email body.
[controller setMessageBody:body isHTML:NO];
// show the email controller.
[self presentViewController:controller animated:YES completion:nil];

issue when multiple recipients for my app mail- Objective c

I am facing a problem when multiple recipients for my mail, i have two attachments there by default.Is there anything i have to do when iam sending a mail to multiple recipients other than the below code; (I have to select or type recipient id's from UI)
if ([MFMailComposeViewController canSendMail])
{
[self printPdfAndCsv];// code to generate pdf & csv
MFMailComposeViewController* mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
// attaching PDF File.
[mailComposer addAttachmentData:[NSData dataWithContentsOfFile:self.pdfFilePath]
mimeType:#"Application/pdf" fileName:[NSString stringWithFormat:#"pdfName-%#.pdf", selectedProjectName ]];
// attaching CSV File.
[mailComposer addAttachmentData:[NSData dataWithContentsOfFile:self.csvFilePath]
mimeType:#"text/csv" fileName:[NSString stringWithFormat:#"csvName-%#.csv", selectedProjectName ]];
[self presentViewController:mailComposer animated:YES completion:nil];
}
Iam a starter in iPhone development, so i need your valuable help.
Try this
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
NSArray *toRecipients = [NSArray arrayWithObjects:#"abc#gmail.com",#"xyz#gmail.com",nil];
[picker setToRecipients:toRecipients];
If you want to sent mail to multiple user then you can use:
[mailController setToRecipients:[NSArray arrayWithObject:#"email#address.com",#"email1#address.com",#"email#address.com",nil]];
I got a solution from rmaddy on his comment,
There may be problem with one of the email addresses we tested.
Maybe the email ended up appearing as junk mail (spam).
Once the user taps Send, it's out of our control.
(and in my case; i found the mails that i have sent were in spam box)

MFMailComposeViewController IOS

At the moment I have a NSArray of emails, and I open a view to end an email to all of these emails:
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
[mailer setSubject:#"App Support"];
NSArray *toRecipients = [NSArray arrayWithArray:emails];
[mailer setToRecipients:toRecipients];
NSString *emailBody = #"";
[mailer setMessageBody:emailBody isHTML:NO];
// only for iPad
mailer.modalPresentationStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:mailer animated:YES];
Is there a way to send an email to this list without opening actually opening the controller (the user won't need to press on the send button and can't change the message)??
There's no way to send the message using the MFMailComposeViewController.
If you want to send an email "silently", I have previously used SKPSMTPMessage - an SMTP client that can be used on iOS to send emails without any UI.
You can set up a Gmail account specifically for the purpose of sending the messages if required.
I've created a simple demo for you. Download it here. Note that, along with the files in the SMTP folder, you will need to link to the CFNetwork.framework in your project.

Resources