2012-06-06 32 views
5

en mi aplicación, puedo enviar correos electrónicos usando el servidor smtp, para eso tengo que ingresar mi identificación de correo electrónico correcta y contraseña. pero cuando ingreso los detalles de mi cuenta de gmail o yahoo no puedo enviar el correo. como configuré mi relayHost = @ "smtp.gmail.com"; entonces tampoco puedo enviar el correo.iphone para enviar correo electrónico usando el servidor smtp?

por favor ayuda esto.

siguiente es mi código:

-(void)sendEMAIL{ 

    SKPSMTPMessage *testMsg = [[SKPSMTPMessage alloc] init]; 

    testMsg.fromEmail = str_uname; 
    NSLog(@"str_Uname=%@",testMsg.fromEmail); 

    testMsg.toEmail = str_info; 

    NSLog(@"autoemail=%@",testMsg.toEmail); 

    testMsg.relayHost = @"smtp.gmail.com"; 

    testMsg.requiresAuth = YES; 

    testMsg.login = str_uname; 
    NSLog(@"autoelogin=%@",testMsg.login); 

    testMsg.pass = str_password; 
    NSLog(@"autopass=%@",testMsg.pass); 

    testMsg.subject = @"Schedule Sms And Email"; 

    testMsg.wantsSecure = YES; 

    NSString *sendmsg=[[NSString alloc]initWithFormat:@"%@",str_info2]; 
    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]; 
} 

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

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

el problema es que Gmail y Yahoo utiliza autentificación personalizado para sus servicios SMTP. – CarlJ

Respuesta

-1

puede administrar host de transmisión de yahoo, gmail, hotmail, etc en esta manera-

NSArray *arr1 = [fromEmail componentsSeparatedByString:@"@"]; 
NSArray *arr2 = [[arr1 objectAtIndex:1] componentsSeparatedByString:@"."]; 

if ([arr2 containsObject:@"gmail"]) { 
    smtp_message.relayHost = @"smtp.gmail.com"; 
} 
else if ([arr2 containsObject:@"yahoo"]) { 
    smtp_message.relayHost = @"smtp.mail.yahoo.com"; 
} 
else if ([arr2 containsObject:@"hotmail"] || [arr2 containsObject:@"live"]) { 
    smtp_message.relayHost = @"smtp.live.com"; 
} 
else 
{ 
    NSString *smtpRelay = [[NSString alloc]init]; 
    smtpRelay = [NSString stringWithFormat:@"smtp.%@.com",[arr2 objectAtIndex:0]]; 
     smtp_message.relayHost = smtpRelay; 
} 
Cuestiones relacionadas