Created
February 2, 2011 05:41
-
-
Save timburks/807297 to your computer and use it in GitHub Desktop.
Sending mail with SKPSMTPClient
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(load "SKPSMTP") | |
(class SKPSMTPClient is NSObject | |
(ivar (id) smtp (id) user (BOOL) running) | |
(ivar-accessors) | |
(- (void) sendMessage:(id) message is | |
(set @smtp (SKPSMTPMessage new)) | |
(@smtp setFromEmail:(@user username:)) | |
(@smtp setToEmail:(@user username:)) | |
(@smtp setRelayHost:(@user server:)) | |
(@smtp setRelayPorts:(array (@user port:))) | |
(@smtp setRequiresAuth:YES) | |
(@smtp setLogin:(@user username:)) | |
(@smtp setPass:(@user password:)) | |
(@smtp setSubject:(message subject:)) | |
(@smtp setWantsSecure:YES) | |
(@smtp setDelegate:self) | |
(@smtp setParts:(array (dict kSKPSMTPPartContentTypeKey:"text/plain" | |
kSKPSMTPPartMessageKey:(message text:) | |
kSKPSMTPPartContentTransferEncodingKey:"8bit"))) | |
(@smtp send) | |
(set @running YES) | |
(while @running | |
((NSRunLoop currentRunLoop) runUntilDate:(NSDate dateWithTimeIntervalSinceNow:0.01)))) | |
(- (void)messageSent:(id)message is | |
(set @running NO) | |
(puts "sent")) | |
(- (void) messageFailed:(id)message error:(id)error is | |
(set @running NO) | |
(puts "failed with error #{(error description)}"))) | |
(set user (dict username:(((NSProcessInfo processInfo) environment) objectForKey:"BOT_MAIL_USERNAME") | |
password:(((NSProcessInfo processInfo) environment) objectForKey:"BOT_MAIL_PASSWORD") | |
server:"smtp.gmail.com" | |
port:587)) | |
(set client (SKPSMTPClient new)) | |
(client setUser:user) | |
(10 times: | |
(do (i) | |
(client sendMessage:(dict recipient:(user username:) | |
subject:"Test Message #{i}" | |
text:"Hello, this is a tést messåge. #{i}")))) | |
(puts "done") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment