Iphone to send email using an SMTP server?

in my application, I can send email using smtp server because I entered my correct email id and password. but when I enter my gmail or yahoo account details, I can not send mail. since I set my relayHost = @ "smtp.gmail.com"; then also I can not send mail.

please help me with this.

the following is my code:

-(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];
}
+5
source share
2 answers

you can also use the source code from https://github.com/kailoa/iphone-smtp Its awesome code using smtp server.

http://iphonesdksnippets.com/send-email-with-attachments-on-iphone.html .... . .

+2

yahoo, gmail, hotmail .. -

 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;
}
-1

All Articles