- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
发送带有收据的电子邮件时,如下所示致:人A抄送:人B密件抄送:personC
这三个人都会收到电子邮件。并且所有收到的电子邮件将在收据字段中显示 personC。正如我们所知,密件抄送联系人 personC 不应显示。为什么会这样?我使用 to、cc 和 bcc 正确设置了 CTCoreMessage
。这是 MailCore
框架的错误吗?或者我错过了什么?
提前致谢!
以下是相关代码供大家引用
- (IBAction)buttonSendPressed:(id)sender
{
[self dismissViewControllerAnimated:YES completion:^{
CTCoreMessage *testMsg = [[CTCoreMessage alloc] init];
NSMutableArray *mutArrTos = [NSMutableArray array]; // personA
NSMutableArray *mutArrCcs = [NSMutableArray array]; // personB
NSMutableArray *mutArrBccs = [NSMutableArray array]; // personC
NSLog(@"toContactArr :%@",toContactArr);
if (toContactArr.count>0) {
for (NSDictionary *dict in toContactArr) {
[mutArrTos addObject:[CTCoreAddress addressWithName:[dict valueForKey:@"name"] email:[dict valueForKey:@"email"]]];
}
NSLog(@"mutArrRecipients : %@", mutArrTos);
[testMsg setTo:[NSSet setWithArray:mutArrTos]];
}
if (ccContactArr.count>0) {
for (NSDictionary *dict in ccContactArr) {
[mutArrCcs addObject:[CTCoreAddress addressWithName:[dict valueForKey:@"name"] email:[dict valueForKey:@"email"]]];
}
NSLog(@"mutArrRecipients : %@", mutArrCcs);
[testMsg setCc:[NSSet setWithArray:mutArrCcs]];
}
if (bccContactArr.count>0) {
for (NSDictionary *dict in bccContactArr) {
[mutArrBccs addObject:[CTCoreAddress addressWithName:[dict valueForKey:@"name"] email:[dict valueForKey:@"email"]]];
}
NSLog(@"mutArrRecipients : %@", mutArrBccs);
[testMsg setBcc:[NSSet setWithArray:mutArrBccs]];
}
[testMsg setFrom:[NSSet setWithObject:[CTCoreAddress addressWithName:@"222222" email:@"letibe.xx@gmail.com"]]];
[testMsg setBody:self.textView.text];
[testMsg setSubject:self.textField.text];
DbManager *dbManager = [[DbManager sharedManager] switchDBWithFileName:DBNAME];
User *user = [dbManager getAccount];
NSString *account = user.account;
NSString *pwd = user.password;
NSString *emailType = user.email_type;
NSLog(@"user: %@", user);
NSLog(@"account: %@", account);
NSLog(@"pwd: %@", pwd);
NSLog(@"emailType: %@", emailType);
NSError *error;
BOOL success = [CTSMTPConnection sendMessage:testMsg server:@"smtp.gmail.com" username:@"letibe.xx@gmail.com" password:@"222222" port:25 useTLS:YES useAuth:YES error:&error];
if (!success) {
// Present the error
NSLog(@"error: %@", error);
}else{
NSLog(@"CTSMTPConnection success");
}
}];
}
最佳答案
阅读SMTP协议(protocol)后。我修改了 CTCoreMessage.m
以删除 header 中的密件抄送地址,如下所示。这样密件抄送地址就不会打印在收件人中了。
CTCoreMessage.m
- (NSString *)render {
CTMIME *msgPart = myParsedMIME;
if ([myParsedMIME isKindOfClass:[CTMIME_MessagePart class]]) {
/* It's a message part, so let's set it's fields */
struct mailimf_fields *fields;
struct mailimf_mailbox *sender = (myFields->fld_sender != NULL) ? (myFields->fld_sender->snd_mb) : NULL;
struct mailimf_mailbox_list *from = (myFields->fld_from != NULL) ? (myFields->fld_from->frm_mb_list) : NULL;
struct mailimf_address_list *replyTo = (myFields->fld_reply_to != NULL) ? (myFields->fld_reply_to->rt_addr_list) : NULL;
struct mailimf_address_list *to = (myFields->fld_to != NULL) ? (myFields->fld_to->to_addr_list) : NULL;
struct mailimf_address_list *cc = (myFields->fld_cc != NULL) ? (myFields->fld_cc->cc_addr_list) : NULL;
// struct mailimf_address_list *bcc = (myFields->fld_bcc != NULL) ? (myFields->fld_bcc->bcc_addr_list) : NULL;
clist *inReplyTo = (myFields->fld_in_reply_to != NULL) ? (myFields->fld_in_reply_to->mid_list) : NULL;
clist *references = (myFields->fld_references != NULL) ? (myFields->fld_references->mid_list) : NULL;
char *subject = (myFields->fld_subject != NULL) ? (myFields->fld_subject->sbj_value) : NULL;
//TODO uh oh, when this get freed it frees stuff in the CTCoreMessage
//TODO Need to make sure that fields gets freed somewhere
// fields = mailimf_fields_new_with_data(from, sender, replyTo, to, cc, bcc, inReplyTo, references, subject);
fields = mailimf_fields_new_with_data(from, sender, replyTo, to, cc, NULL, inReplyTo, references, subject);
[(CTMIME_MessagePart *)msgPart setIMFFields:fields];
}
return [myParsedMIME render];
}
关于iphone - 通过密件抄送发送邮件时 MailCore 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12137402/
我在理解以下行为时遇到了一些麻烦 方案方案: (define c (dynamic-wind (lambda () (display 'IN)(newline)) (lambda
我多次尝试去理解 continuations 的概念和 call/cc 。每一次尝试都失败了。有人可以向我解释一下这些概念吗?最好用比维基百科或其他帖子中的例子更现实的例子。 我有网络编程和面向对象编
所以我正试图在 Scheme 中找出整个 call/cc 的东西。下面是我正在使用的代码: (+ 1 (call/cc (lambda (k) (if (number? k)
所以我正试图在 Scheme 中找出整个 call/cc 的东西。下面是我正在使用的代码: (+ 1 (call/cc (lambda (k) (if (number? k)
当我将我的应用程序从 Solaris C 编译器 sunstudio/v12/SUNWspro 迁移到 Linux C 编译器 GCC 版本 4.1.2 20080704 时,我看到了 CC 无法识别
这个程序正在运行,但是如何发送多个CC和BCC。 for($i = 0; $i \r\n"; $headers .= "Reply-To: \r\n"; $hedders .= "c
我的 makefile 中有以下内容: CC = cc -g -KPIC 当我运行 makefile 时,出现以下错误。 cc -g -KPIC -DORA817 -DIDA_VERSION='"
我有一个测试脚本,它在内部调用 make 来编译示例 C 程序。但由于某些未知的原因,编译没有进行。它抛出以下错误: 08-27 20:23:45.777 make program c
谁能帮助我使用 Java 代码打开带有收件人、抄送、主题和正文的 Outlook 邮件客户端。尝试使用以下代码 import java.awt.Desktop; import java.net.URI
尝试使用此命令安装 perl 的 Encode::Detect 模块时出现以下错误 perl -MCPAN -e "install Encode::Detect" 错误信息 cc: error try
在旧版 Office API 的文档中,我发现可以在用户撰写电子邮件时监视“收件人/抄送”字段的更改。这是否在 Office 365 的新 Javascript API 中公开?我似乎无法找到明确的答
我是一名优秀的程序员,十分优秀!