0

这是实现文件。邮件正在发送,但问题是邮件正文中的文本缺少邮件收件人,任何人都可以帮助我......如何纠正这个问题

@implementation MyController

- (id)init
{
    self = [super init];
    if(self)
    {
        myMessage = [[CTCoreMessage alloc] init];
    }
    return self;
}

- (void)dealloc
{
    [myMessage release];
    [super dealloc];
}

- (IBAction)sendMessage:(id)sender
{
    CTCoreMessage *msg = [[CTCoreMessage alloc] init];
    [msg setTo:[myMessage to]];
    [msg setFrom:[myMessage from]];
    [msg setBody:[myMessage body]];
    [msg setSubject:[myMessage subject]];

    BOOL auth = ([useAuth state] == NSOnState);
    BOOL tls = ([useTLS state] == NSOnState);
    [CTSMTPConnection sendMessage:msg server:[server stringValue] username:[username stringValue]
    password:[password stringValue] port:[port intValue] useTLS:tls useAuth:auth];
    [msg release];
}

- (NSString *)to
{
    return [[[myMessage to] anyObject] email];
}

- (void)setTo:(NSString *)aValue
{
    CTCoreAddress *addr = [CTCoreAddress address];
    [addr setEmail:aValue];
    [myMessage setTo:[NSSet setWithObject:addr]];
}

- (NSString *)from
{
    return [[[myMessage from] anyObject] email];
}

- (void)setFrom:(NSString *)aValue
{
    CTCoreAddress *addr = [CTCoreAddress address];
    [addr setEmail:aValue];
    [addr setName:@""];
    [myMessage setFrom:[NSSet setWithObject:addr]];
}

- (NSString *)subject
{
    return [myMessage subject];
}

- (void)setSubject:(NSString *)aValue
{
    [myMessage setSubject:aValue];
}

- (NSString *)body
{
    return [myMessage body];
}

- (void)setBody:(NSString *)aValue
{
    [myMessage setBody:aValue];
}
@end
4

2 回答 2

0

你有周期性的参考,Rehana。

看你的setBody方法。

您正在尝试将 myMessage 的正文设置为 myMessage 的当前正文。这两个都是NULL。

于 2011-11-26T11:36:31.870 回答
0

您需要首先在 myMessage 对象中设置值,无需再次调用相同的东西。在这里你将如何做到这一点

- (IBAction)sendMessage:(id)sender
{
    //Assuming textfields with the names I have passed as parameter.
    //This is only for demonstration 

    //Set body to myMessage object from textview
    [self setBody:bodytextview.text];
    [self setTo:txtfTo.text];
    [self setFrom:txtfFrom.text];
    [self setSubject:txtfSubject.text];

    BOOL auth = ([useAuth state] == NSOnState);
    BOOL tls = ([useTLS state] == NSOnState);
    //Note I'm passing myMessage Object
    [CTSMTPConnection sendMessage:myMessage server:[server stringValue] username:[username stringValue]
    password:[password stringValue] port:[port intValue] useTLS:tls useAuth:auth];

}
于 2012-07-18T09:49:02.053 回答