objective-c - وصول - لا يمكن ارسال البريد بالايفون




إرسال mailcore2 سهل رسائل البريد الإلكتروني في سويفت (2)

لقد أدرجت مؤخرا MailCore2 في بلدي الهدف-C المشروع، وأنها عملت تماما. الآن، وأنا في عملية نقل التعليمات البرمجية داخل التطبيق إلى سويفت. لقد نجحت في استيراد واجهة برمجة التطبيقات MailCore2 إلى مشروعي السريع، ولكني لا أرى أية وثائق (بحث غوغل، libmailcore.com، جيثب) حول كيفية تحويل رمز العمل الهدف- C التالي إلى رمز سويفت:

MCOSMTPSession *smtpSession = [[MCOSMTPSession alloc] init];
smtpSession.hostname = @"smtp.gmail.com";
smtpSession.port = 465;
smtpSession.username = @"[email protected]";
smtpSession.password = @"password";
smtpSession.authType = MCOAuthTypeSASLPlain;
smtpSession.connectionType = MCOConnectionTypeTLS;

MCOMessageBuilder *builder = [[MCOMessageBuilder alloc] init];
MCOAddress *from = [MCOAddress addressWithDisplayName:@"Matt R"
                                              mailbox:@"[email protected]"];
MCOAddress *to = [MCOAddress addressWithDisplayName:nil 
                                            mailbox:@"[email protected]"];
[[builder header] setFrom:from];
[[builder header] setTo:@[to]];
[[builder header] setSubject:@"My message"];
[builder setHTMLBody:@"This is a test message!"];
NSData * rfc822Data = [builder data];

MCOSMTPSendOperation *sendOperation = 
   [smtpSession sendOperationWithData:rfc822Data];
[sendOperation start:^(NSError *error) {
    if(error) {
        NSLog(@"Error sending email: %@", error);
    } else {
        NSLog(@"Successfully sent email!");
    }
}];

هل يعرف أحد كيفية إرسال بريد إلكتروني بنجاح في سويفت باستخدام واجهة برمجة التطبيقات هذه؟ شكرا مقدما لجميع الذين الرد.


وإليك كيفية إجراء ذلك:

الخطوة 1) استيراد mailcore2، أنا باستخدام كوكوابودس

pod 'mailcore2-ios'

الخطوة 2) إضافة mailcore2 إلى رأس سدك: بروجيكت-بريدجينغ-Header.h

#import <MailCore/MailCore.h>

الخطوة 3) ترجمة إلى سويفت

var smtpSession = MCOSMTPSession()
smtpSession.hostname = "smtp.gmail.com"
smtpSession.username = "[email protected]"
smtpSession.password = "xxxxxxxxxxxxxxxx"
smtpSession.port = 465
smtpSession.authType = MCOAuthType.SASLPlain
smtpSession.connectionType = MCOConnectionType.TLS
smtpSession.connectionLogger = {(connectionID, type, data) in
    if data != nil {
        if let string = NSString(data: data, encoding: NSUTF8StringEncoding){
            NSLog("Connectionlogger: \(string)")
        }
    }
}

var builder = MCOMessageBuilder()
builder.header.to = [MCOAddress(displayName: "Rool", mailbox: "[email protected]")]
builder.header.from = MCOAddress(displayName: "Matt R", mailbox: "[email protected]")
builder.header.subject = "My message"
builder.htmlBody = "Yo Rool, this is a test message!"

let rfc822Data = builder.data()
let sendOperation = smtpSession.sendOperationWithData(rfc822Data)
sendOperation.start { (error) -> Void in
    if (error != nil) {
        NSLog("Error sending email: \(error)")
    } else {
        NSLog("Successfully sent email!")
    }
} 

ملاحظة قد تحتاج إلى كلمة مرور خاصة للتطبيق لحسابك في غوغل. راجع https://support.google.com/accounts/answer/185833


لإرسال صورة كمرفق في سويفت فقط إضافة:

    var dataImage: NSData?
    dataImage = UIImageJPEGRepresentation(image, 0.6)!
    var attachment = MCOAttachment()
    attachment.mimeType =  "image/jpg"
    attachment.filename = "image.jpg"
    attachment.data = dataImage
    builder.addAttachment(attachment)






mailcore