2012-06-06 18 views
5

nella mia applicazione sono in grado di inviare e-mail utilizzando il server smtp, per questo ho inserito la mia id e password corretta. ma quando inserisco i miei dettagli di account Gmail o Yahoo non sono in grado di inviare la posta. come ho impostato il mio relayHost = @ "smtp.gmail.com"; quindi anche io non sono in grado di inviare la posta.iphone per inviare e-mail utilizzando il server smtp?

per favore aiutatemi.

segue è il mio codice:

-(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

il problema è che Gmail e Yahoo utilizza autenticazione personalizzati per i loro servizi SMTP. – CarlJ

risposta

-1

è possibile gestire host di inoltro per Yahoo, Gmail, Hotmail, ecc in questo modo-

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; 
} 
Problemi correlati