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

最初に 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 に答える
0

そこには循環参照があります、レハナ。

あなたのsetBody方法を見てください。

myMessage の本文を myMessage の現在の本文に設定しようとしています。どちらもNULLです。

于 2011-11-26T11:36:31.870 に答える