Diffstat (limited to 'noncore/unsupported/mailit/smtpclient.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/mailit/smtpclient.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/noncore/unsupported/mailit/smtpclient.cpp b/noncore/unsupported/mailit/smtpclient.cpp index 2916f45..5b5ef52 100644 --- a/noncore/unsupported/mailit/smtpclient.cpp +++ b/noncore/unsupported/mailit/smtpclient.cpp @@ -52,112 +52,119 @@ void SmtpClient::newConnection(const QString &target, int port) emit updateStatus(tr("DNS lookup")); } void SmtpClient::addMail(const QString &from, const QString &subject, const QStringList &to, const QString &body) { RawEmail *mail = new RawEmail; mail->from = from; mail->subject = subject; mail->to = to; mail->body = body; mailList.append(mail); } void SmtpClient::connectionEstablished() { emit updateStatus(tr("Connection established")); } void SmtpClient::errorHandling(int status) { - emit errorOccurred(status); + errorHandlingWithMsg( status, QString::null ); +} + +void SmtpClient::errorHandlingWithMsg(int status, const QString & EMsg ) +{ + emit errorOccurred(status, EMsg ); socket->close(); mailList.clear(); sending = FALSE; } void SmtpClient::incomingData() { QString response; if (!socket->canReadLine()) return; response = socket->readLine(); - switch(status) { case Init: { if (response[0] == '2') { status = From; mailPtr = mailList.first(); *stream << "HELO there\r\n"; - } else errorHandling(ErrUnknownResponse); + } else errorHandlingWithMsg(ErrUnknownResponse,response); break; } case From: { if (response[0] == '2') { - *stream << "MAIL FROM: " << mailPtr->from << "\r\n"; + qDebug(mailPtr->from); + *stream << "MAIL FROM: <" << mailPtr->from << ">\r\n"; status = Recv; - } else errorHandling(ErrUnknownResponse); + } else errorHandlingWithMsg(ErrUnknownResponse, response ); break; } case Recv: { - if (response[0] == '2') { + if (response[0] == '2') { it = mailPtr->to.begin(); - if (it == NULL) - errorHandling(ErrUnknownResponse); - *stream << "RCPT TO: " << *it << ">\r\n"; + if (it == NULL) { + errorHandlingWithMsg(ErrUnknownResponse,response); + } + *stream << "RCPT TO: <" << *it << ">\r\n"; status = MRcv; - } else errorHandling(ErrUnknownResponse); + } else errorHandlingWithMsg(ErrUnknownResponse,response); break; } case MRcv: { if (response[0] == '2') { it++; if ( it != mailPtr->to.end() ) { *stream << "RCPT TO: <" << *it << ">\r\n"; break; } else { status = Data; } - } else errorHandling(ErrUnknownResponse); + } else errorHandlingWithMsg(ErrUnknownResponse,response); } case Data: { if (response[0] == '2') { *stream << "DATA\r\n"; status = Body; emit updateStatus(tr("Sending: ") + mailPtr->subject); - } else errorHandling(ErrUnknownResponse); + + } else errorHandlingWithMsg(ErrUnknownResponse,response); break; } case Body: { if (response[0] == '3') { *stream << mailPtr->body << "\r\n.\r\n"; mailPtr = mailList.next(); if (mailPtr != NULL) { status = From; } else { status = Quit; } - } else errorHandling(ErrUnknownResponse); + } else errorHandlingWithMsg(ErrUnknownResponse,response); break; } case Quit: { if (response[0] == '2') { *stream << "QUIT\r\n"; status = Done; QString temp; temp.setNum(mailList.count()); emit updateStatus(tr("Sent ") + temp + tr(" messages")); emit mailSent(); mailList.clear(); sending = FALSE; socket->close(); - } else errorHandling(ErrUnknownResponse); + } else errorHandlingWithMsg(ErrUnknownResponse,response); break; } } } |