当前位置: 首页 > 工具软件 > Mailcore > 使用案例 >

MailCore2 的使用之SMTP

杜烨伟
2023-12-01

MailCore2 的使用

简介:

MailCore是一个第三方的邮件SDK,支持POP和IMAP 方式接收邮件,以及smtp邮件发送.github上提供的demo功能是非常少的,很多深入内容没有讲解,只能查看上面提供的类文档查看各个对象的内容,经过我长时间摸索出来,下面讲解有关其使用的方法。


SMTP(Simple Mail Transfer Protocol)

1、先创建MCOSMTPSession,配置smtp邮箱参数

MCOSMTPSession *smtpSession = [[MCOSMTPSession alloc] init];  
smtpSession.hostname = @"smtp.exmail.qq.com";  
smtpSession.port = 587;  
smtpSession.username = @"hello@qq.com";  
smtpSession.password = @"passward";  
smtpSession.connectionType = MCOConnectionTypeStartTLS;  
  
MCOSMTPOperation *smtpOperation = [self.smtpSession loginOperation];  
[smtpOperation start:^(NSError * error) {  
    if (error == nil) {  
        NSLog(@"login account successed");  
    } else {  
        NSLog(@"login account failure: %@", error);  
    }  
}];  


2、使用MCOMessageBuilder构建邮件体的发送内容

// 构建邮件体的发送内容  
MCOMessageBuilder *messageBuilder = [[MCOMessageBuilder alloc] init];  
messageBuilder.header.from = [MCOAddress addressWithDisplayName:@"张三" mailbox:@"111111@qq.com"];   // 发送人  
messageBuilder.header.to = @[[MCOAddress addressWithMailbox:@"222222@qq.com"]];       // 收件人(多人)  
messageBuilder.header.cc = @[[MCOAddress addressWithMailbox:@"@333333qq.com"]];      // 抄送(多人)  
messageBuilder.header.bcc = @[[MCOAddress addressWithMailbox:@"444444@qq.com"]];    // 密送(多人)  
messageBuilder.header.subject = @"测试邮件";    // 邮件标题  
messageBuilder.textBody = @"hello world";           // 邮件正文  
  
/*  
 如果邮件是回复或者转发,原邮件中往往有附件以及正文中有其他图片资源, 
 如果有需要你可将原文原封不动的也带过去,这里发送的正文就可以如下配置  
 */  
NSString * bodyHtml = @"<p>我是原邮件正文</p>";  
NSString *body = @"我是邮件回复的内容";  
NSMutableString*fullBodyHtml = [NSMutableString stringWithFormat:@"%@<br/>-------------原始邮件-------------<br/>%@",[body stringByReplacingOccurrencesOfString:@"\n"withString:@"<br/>"],bodyHtml];  
[messageBuilder setHTMLBody:fullBodyHtml];  
  
// 添加正文里的附加资源  
NSArray *inattachments = msgPaser.htmlInlineAttachments;  
for (MCOAttachment*attachmentininattachments) {  
    [messageBuilder addRelatedAttachment:attachment];    //添加html正文里的附加资源(图片)  
}  
  
// 添加邮件附件  
for (MCOAttachment*attachmentinattachments) {  
    [builder addAttachment:attachment];    //添加附件  
}  


3、将构建好的邮件发送出去

// 发送邮件  
NSData * rfc822Data =[messageBuilder data];  
MCOSMTPSendOperation *sendOperation = [self.smtpSession sendOperationWithData:rfc822Data];  
[sendOperation start:^(NSError *error) {  
    if (error == nil) {  
        NSLog(@"send message successed");  
    } else {  
        NSLog(@"send message failure: %@", error);  
    }  
}];  



 类似资料: