Отправка сообщения электронной почты с помощью приложения в mailcore xcode: отсутствует ошибка в тексте основной части письма - PullRequest
0 голосов
/ 26 ноября 2011

Это файл реализации. Почта отправляет, но проблема в том, что текст в теле письма отсутствует у получателя почты, может ли кто-нибудь помочь мне, пожалуйста, ...... как исправить эту проблему

@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

Ответы [ 2 ]

0 голосов
/ 18 июля 2012

Сначала вам нужно установить значения в объекте 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];

}
0 голосов
/ 26 ноября 2011

У тебя там циклические ссылки, Рехана.

Посмотрите на ваш setBody метод.

Вы пытаетесь установить тело myMessage в текущее тело myMessage. Оба из которых имеют значение NULL.

...