我正在创建一个应用程序,我希望使用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>  <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]);
}
答案 0 :(得分:1)
我想要做的是我想从中访问用户gamil帐户详细信息 将iPhone的标签设置到我的应用程序中?有可能做回溯 应用程序中的gamil帐户详细信息?
不,而且有充分理由:该功能允许任何开发人员访问任何人的电子邮件帐户。
这将是一个大量安全漏洞。
就像使用位置服务一样,您只需要让用户输入他们的电子邮件地址和密码。并希望他们希望通过这种个人信息来信任您的应用。 (假设Apple完全赞同你的应用程序。)
答案 1 :(得分:1)
让用户通过Google授予您的应用授权。在他们的开发者网站上用google api检查oauth autorization? https://developers.google.com/accounts/docs/OAuth2
与往常一样,用户通过google api登录他的帐户并向您返回一个access_token,以便从他的帐户中获取相关信息,包括您需要的电子邮件。