iPhone从设置中检索应用程序中的Gmail帐户详细信息

时间:2012-06-01 07:07:00

标签: iphone objective-c ios ios5 xcode4.2

我正在创建一个应用程序,我希望使用smtp服务器发送电子邮件。

它工作正常,但如果用户没有提供正确的Gmail帐户详细信息,例如(电子邮件ID和密码),则不会发送电子邮件。

我想要做的是我想从iPhone的设置标签访问我的应用程序中的用户Gmail帐户详细信息?

是否可以将gmail帐户详细信息检索到应用程序中?

请帮我解决这个问题。

以下是我的代码:

-(IBAction)sendemail
{
    SKPSMTPMessage *testMsg = [[SKPSMTPMessage alloc] init];
    //testMsg.fromEmail = @"Lexi mobile";//nimit51parekh@gmail.com
    testMsg.fromEmail = soundOn;
    NSLog(@"str_Uname=%@",testMsg.fromEmail);
    //str_info = [str_info stringByReplacingOccurrencesOfString:@"," withString:@""];
    testMsg.toEmail = [string_emailinfo objectAtIndex:0];
    NSLog(@"autoemail=%@",testMsg.toEmail);
    testMsg.relayHost = @"smtp.gmail.com";
    testMsg.requiresAuth = YES;
    testMsg.login = soundOn;
    NSLog(@"autoelogin=%@",testMsg.login);
    testMsg.pass = vibrateOn;
    NSLog(@"autopass=%@",testMsg.pass);
    testMsg.subject = @"Photo Sharing";
    testMsg.wantsSecure = YES; 

    NSURL *url = [[NSURL alloc]initWithString:@"http://itunes.apple.com/us/app/umix-radio/id467041430?mt=8"];
    NSString *msg2 = [NSString stringWithFormat:@"<html><b><a href=\"%@\">DOWNLOAD NOW</a></b>&nbsp&nbsp<a href=\"http://itunes.apple.com/us/app/umix-radio/id467041430?mt=8\"></a></html>",url];
    NSString *sendmsg=[[NSString alloc]initWithFormat:@"%@",msg2];
    NSLog(@"automsg=%@",sendmsg);

    testMsg.delegate = self;

    NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain",kSKPSMTPPartContentTypeKey,
                                                            sendmsg,kSKPSMTPPartMessageKey,@"8bit",kSKPSMTPPartContentTransferEncodingKey,nil];

    testMsg.parts = [NSArray arrayWithObjects:plainPart,nil];
    [testMsg send];

    // [self DeleteRowAfterSending];
    //[self performSelector:@selector(DeleteRowAfterSending) withObject:nil afterDelay:5.0];
}

-(void)messageSent:(SKPSMTPMessage *)message
{
    [message release];

    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Success" message:@"Your email is sent successfully" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    [alert release];

    NSLog(@"delegate - message sent");
}

-(void)messageFailed:(SKPSMTPMessage *)message error:(NSError *)error
{
    [message release];

    // open an alert with just an OK button
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Fail" message:@"Message sending failure" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    [alert release];

    NSLog(@"delegate - error(%d): %@", [error code], [error localizedDescription]);
}

2 个答案:

答案 0 :(得分:1)

  

我想要做的是我想从中访问用户gamil帐户详细信息   将iPhone的标签设置到我的应用程序中?有可能做回溯   应用程序中的gamil帐户详细信息?

不,而且有充分理由:该功能允许任何开发人员访问任何人的电子邮件帐户

这将是一个大量安全漏洞。

就像使用位置服务一样,您只需要让用户输入他们的电子邮件地址和密码。并希望他们希望通过这种个人信息来信任您的应用。 (假设Apple完全赞同你的应用程序。)

答案 1 :(得分:1)

让用户通过Google授予您的应用授权。在他们的开发者网站上用google api检查oauth autorization? https://developers.google.com/accounts/docs/OAuth2

与往常一样,用户通过google api登录他的帐户并向您返回一个access_token,以便从他的帐户中获取相关信息,包括您需要的电子邮件。