2012-06-19 9 views
0

J'écris iphone une application, dans laquelle j'ai besoin d'envoyer des emails et des sms à un certain intervalle automatiquement à un numéro et un email ID. Mais chaque fois qu'il va à cette partie après un certain intervalle, une fenêtre pop-up vient à la fois pour les emails et les sms, et quand j'appuie sur le bouton envoyer alors seulement il envoie l'email ou le sms.Envoyer un email et un SMS automatiquement iPhone, xcode

Comment puis-je le rendre automatique, de sorte que je n'ai pas à appuyer sur le bouton d'envoi encore et encore et il fait l'action automatiquement. J'ai trouvé ce morceau de code pour envoyer des emails et des sms et j'utilise ce code uniquement pour mon but. Comment puis-je le modifier pour le rendre automatique.

// 
// MessageViewController.m 
// EmailExample 
// 
// Copyright http://iphoneapp-dev.blogspot.com. All rights reserved. 
// 

#import "MessageViewController.h" 


@implementation MessageViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.title = @"Message sending"; 
} 

- (IBAction)btnEmail_Clicked:(id)sender 
{ 
    MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; 
    controller.mailComposeDelegate = self; 
    [controller setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; 
    [controller setSubject:@"iPhone Email Example Mail"]; 
    [controller setMessageBody:@"http://iphoneapp-dev.blogspot.com" isHTML:NO]; 
    [self presentModalViewController:controller animated:YES]; 
    [controller release]; 
} 

- (IBAction)btnMessage_Clicked:(id)sender 
{ 
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = @"Hello Friends this is sample text message."; 
     controller.recipients = [NSArray arrayWithObjects:@"+919999999999", nil]; 
     controller.messageComposeDelegate = self; 
     [self presentModalViewController:controller animated:YES]; 
    } 
} 

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { 

    switch (result) { 
     case MessageComposeResultCancelled: 
      NSLog(@"Cancelled"); 
      break; 
     case MessageComposeResultFailed: 
      NSLog(@"Failed"); 
      break; 
     case MessageComposeResultSent: 
      NSLog(@"Send"); 
      break; 
     default: 
      break; 
    } 

    [self dismissModalViewControllerAnimated:YES]; 
} 

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 

    if (result == MFMailComposeResultSent) { 
     NSLog(@"It's away!"); 
    } 
    [self dismissModalViewControllerAnimated:YES]; 
} 

- (IBAction)btnCall_Clicked:(id)sender 
{ 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"+919999999999"]]; 
} 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [super dealloc]; 
} 


@end 
+0

Vous ne pouvez pas. Le plus proche est d'envoyer des informations à un service Web REST, et cela ne fonctionnera que lorsque votre application est en cours d'exécution. – danielbeard

+0

Copie possible de http://stackoverflow.com/questions/2827014/iphone-sdk-send-email-in-background-in-iphone-app –

Répondre

3

Vous ne pouvez pas, si cela si possible, vous pouvez envoyer quelques SMS à un service haut de gamme et l'utilisateur pourrait se retrouver avec une facture élevée de téléphone. C'est pourquoi Apple ne le permet pas.

Vous pourriez être en mesure de le faire si vous touchez le SMS/e-mail via un serveur ou dans le cas d'un e-mail directement via SMTP.

1
// Build request 
NSString *urlString = [NSString stringWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", kTwilioSID, kTwilioSecret, kTwilioSID]; 
NSURL *url = [NSURL URLWithString:urlString]; 


ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

[request setPostFormat:NSUTF8StringEncoding]; 
[request setPostValue:kFromNumber forKey:@"From"]; 
[request setPostValue:kToNumber forKey:@"To"]; 
[request setPostValue:kMessage forKey:@"Body"]; 

[request setRequestMethod:@"POST"]; 
[request setDelegate:self]; 
[request setDidFinishSelector:@selector(requestDone:)]; 
[request setDidFailSelector:@selector(requestFail:)]; 

hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
//hud.mode = MBProgressHUDModeAnnularDeterminate; 
hud.labelText = @"Please wait..."; 
hud.detailsLabelText = @"Sending message"; 
hud.delegate = self; 
hud.square = NO; 
hud.dimBackground = YES; 

[request startAsynchronous]; 

Vous pouvez utiliser ce code et modifier les paramètres en fonction de vos besoins J'espère que cela vous aidera à envoyer des SMS.