рд╣рдо iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкрддреНрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рд╕рдорд╕реНрдпрд╛

рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ iOS рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдПрдХ рдкрддреНрд░ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (mailto URL рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ) рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░реАрди рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ (MFMailComposeViewController рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ)ред

рд╕рдорд╛рдзрд╛рди

рдорд╣рдВрдЧрд╛: рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдореЗрдВ рд▓рдЧреЗрдЧреА, рдЖрд╡реЗрджрди рд╕реЗ рд▓реЗрдХрд░ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рддрдХред
рд╕рд╕реНрддрд╛: рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ SMTP рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕рдорд╕реНрдпрд╛

рдЕрдкрдиреЗ SMTP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рдирд┐рд░реНрдгрдп

IOS рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧ SMTP рдХреНрд▓рд╛рдЗрдВрдЯ - SKPSMTPmessage

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд╕рдВрджреЗрд╢ рдХреИрд╕реЗ рднреЗрдЬреЗрдВ - рд╣рдо рдкрддреНрд░ рдХреЗ рдкрд╛рда рдФрд░ "рднреЗрдЬреЗрдВ" рдмрдЯрди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗред

Xcode рдкрд░ рдЬрд╛рдПрдВ, iPhone рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реНрдпреВ-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред рдЗрд╕реЗ рдИрдореЗрд▓ рднреЗрдЬреЗрдВ ( рд╕реНрд░реЛрдд рдХреЛрдб )



рд╣рдо SKPSMTPmessage рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░рддреЗ рд╣реИрдВ
svn checkout skpsmtpmessage.googlecode.com/svn/trunk skpsmtpmessage-read-only
рдФрд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдБ рд╕реЗ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ (рдЖрдк рдмрд╕ рдЦреЛрдЬрдХрд░реНрддрд╛ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ Xcode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
Base64Transcoder.h
Base64Transcoder.m
HSK_CFUtilities.h
HSK_CFUtilities.m
NSData + Base64Additions.h
NSData + Base64Additions.m
NSStream + SKPSMTPExtensions.h
NSStream + SKPSMTPExtensions.m
SKPSMTPMessage.h
SKPSMTPMessage.m





рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ CFNetwork.framework рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ





рд╣рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реАрд▓реНрдб рдФрд░ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрдЗрдП рд╣рдорд╛рд░реА EmailSenderViewController.h рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
#import <UIKit / UIKit.h>

@interface EmailSenderViewController : UIViewController {

IBOutlet UITextView * txtMessage;
}

- ( IBAction ) sendEmail;

@end

EmailSenderViewController.xib TextView (txtMessage рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧреА) рдФрд░ рдмрдЯрди (рдмрдЯрди рднреЗрдЬреЗрдВ рдкрд░ рднреЗрдЬреЗрдВ) рдкрд░ рдЬреЛрдбрд╝реЗрдВ


рд╣рдо EmailSenderViewController.m рдХреЛ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ
- ( рдЖрдИрдмреАрдПрдХреНрд╢рди ) sendEmail
{
SKPSMTPMessage * testMsg = [ [ SKPSMTPMessage рдЖрд╡рдВрдЯрди ] init ] ;

testMsg.fromEmail = @ "your.sender@gmail.com" ; // рдкрддрд╛ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдкрддреНрд░ рднреЗрдЬрддреЗ рд╣реИрдВ
testMsg.toEmail = @ "your.receiver@gmail.com" ; // рдкрддрд╛ рдЬрд╣рд╛рдВ рд╣рдо рдкрддреНрд░ рднреЗрдЬрддреЗ рд╣реИрдВ
testMsg.relayHost = @ "smtp.gmail.com" ; // smtp рд╕рд░реНрд╡рд░ рдЬреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
testMsg.requiresAuth = YES ; // рдХреНрдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
testMsg.login = @ "your.login@gmail.com" ; // smtp рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ
testMsg.pass = @ "yourpassword" ; // smtp рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб
testMsg.subject = @ "habr рд╕реЗ рдореЗрд▓" ; // рдкрддреНрд░ рдХрд╛ рд╡рд┐рд╖рдп
testMsg.bccEmail = @ "" ;
testMsg.wantsSecure = YES ; // smtp.gmail.com рдЯреАрдПрд▓рдПрд╕ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!



NS рдордВрджрд╛рд░рд┐рди * рдкреНрд▓реЗрдкрд╛рд░реНрдЯ = [ NS рдиреЙрдбрд░ рд╢рдмреНрджрдХреЛрд╢WithObjectsAndKeys : @ "рдЯреЗрдХреНрд╕реНрдЯ / рдкреНрд▓реЗрди , "
kSKPSMTPPartContentTypeKey,
txtMessage.text,
kSKPSMTPPartMessageKey,
@ "8 рдмрд┐рдЯ" ,
kSKPSMTPPartContentTransferEncodingKey,
рдиреАрд▓ ] ;

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


[ testMsg send ] ;
}


рдФрд░ рдХрдиреЗрдХреНрд╢рди SKPSMTPMessage.h рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ
#import "EmailSenderViewController.h"
#import "SKPSMTPMessage.h"

рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЬреАрдореЗрд▓ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдореЗрд▓рдмреЙрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ (рдФрд░ рдЖрдкрдХреЗред Sender = your.loging), рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп smtp рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рд╣рдорд╛рд░реЗ TextView рдХреЛ рдереЛрдбрд╝рд╛ рд╕реБрдВрджрд░ (рдЧреЛрд▓ рдХреЛрдиреЛрдВ) рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

рд╣рдо QuartzCore.h рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
#import "EmailSenderViewController.h"
#import "SKPSMTPMessage.h"
#import <QuartzCore / QuartzCore.h>

рдФрд░ ViewDidLoad рдореЗрдВ рд╣рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
- ( рд╢реВрдиреНрдп ) viewDidLoad
{
txtMessage.clipsToBounds = YES ;
txtMessage.layer.cornerRadius = 10.0f;
[ рд╕реБрдкрд░ рд╡реНрдпреВрдбреАрдбрд▓рдб ] ;
}


рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрддреНрд░ рд▓рд┐рдЦреЗрдВ! :)

Source: https://habr.com/ru/post/In127229/


All Articles