|
|
|
@ -135,7 +135,9 @@ void SMTP::sendMessage(void)
|
|
|
|
|
finished = false;
|
|
|
|
|
state = IN;
|
|
|
|
|
writeString = TQString::fromLatin1("helo %1\r\n").arg(domainName);
|
|
|
|
|
write(sock->socket(), writeString.ascii(), writeString.length());
|
|
|
|
|
if (write(sock->socket(), writeString.ascii(), writeString.length()) < 0) {
|
|
|
|
|
// Error
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(connected){
|
|
|
|
|
kdDebug() << "enabling read on sock...\n" << endl;
|
|
|
|
@ -264,7 +266,13 @@ void SMTP::processLine(TQString *line)
|
|
|
|
|
state = IN;
|
|
|
|
|
writeString = TQString::fromLatin1("helo %1\r\n").arg(domainName);
|
|
|
|
|
kdDebug() << "out: " << writeString << endl;
|
|
|
|
|
write(sock->socket(), writeString.ascii(), writeString.length());
|
|
|
|
|
if (write(sock->socket(), writeString.ascii(), writeString.length()) < 0) {
|
|
|
|
|
// Error
|
|
|
|
|
state = CERROR;
|
|
|
|
|
kdDebug() << "smtp error (write failed)" << endl;
|
|
|
|
|
socketClose(sock);
|
|
|
|
|
emit error(COMMAND);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case GOODBYE: //221
|
|
|
|
|
state = QUIT;
|
|
|
|
@ -275,19 +283,37 @@ void SMTP::processLine(TQString *line)
|
|
|
|
|
state = READY;
|
|
|
|
|
writeString = TQString::fromLatin1("mail from: %1\r\n").arg(senderAddress);
|
|
|
|
|
kdDebug() << "out: " << writeString << endl;
|
|
|
|
|
write(sock->socket(), writeString.ascii(), writeString.length());
|
|
|
|
|
if (write(sock->socket(), writeString.ascii(), writeString.length()) < 0) {
|
|
|
|
|
// Error
|
|
|
|
|
state = CERROR;
|
|
|
|
|
kdDebug() << "smtp error (write failed)" << endl;
|
|
|
|
|
socketClose(sock);
|
|
|
|
|
emit error(COMMAND);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case READY:
|
|
|
|
|
state = SENTFROM;
|
|
|
|
|
writeString = TQString::fromLatin1("rcpt to: %1\r\n").arg(recipientAddress);
|
|
|
|
|
kdDebug() << "out: " << writeString << endl;
|
|
|
|
|
write(sock->socket(), writeString.ascii(), writeString.length());
|
|
|
|
|
if (write(sock->socket(), writeString.ascii(), writeString.length()) < 0) {
|
|
|
|
|
// Error
|
|
|
|
|
state = CERROR;
|
|
|
|
|
kdDebug() << "smtp error (write failed)" << endl;
|
|
|
|
|
socketClose(sock);
|
|
|
|
|
emit error(COMMAND);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case SENTFROM:
|
|
|
|
|
state = SENTTO;
|
|
|
|
|
writeString = TQString::fromLatin1("data\r\n");
|
|
|
|
|
kdDebug() << "out: " << writeString << endl;
|
|
|
|
|
write(sock->socket(), writeString.ascii(), writeString.length());
|
|
|
|
|
if (write(sock->socket(), writeString.ascii(), writeString.length()) < 0) {
|
|
|
|
|
// Error
|
|
|
|
|
state = CERROR;
|
|
|
|
|
kdDebug() << "smtp error (write failed)" << endl;
|
|
|
|
|
socketClose(sock);
|
|
|
|
|
emit error(COMMAND);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case DATA:
|
|
|
|
|
state = FINISHED;
|
|
|
|
@ -311,7 +337,13 @@ void SMTP::processLine(TQString *line)
|
|
|
|
|
writeString += messageBody;
|
|
|
|
|
writeString += TQString::fromLatin1(".\r\n");
|
|
|
|
|
kdDebug() << "out: " << writeString;
|
|
|
|
|
write(sock->socket(), writeString.ascii(), writeString.length());
|
|
|
|
|
if (write(sock->socket(), writeString.ascii(), writeString.length()) < 0) {
|
|
|
|
|
// Error
|
|
|
|
|
state = CERROR;
|
|
|
|
|
kdDebug() << "smtp error (write failed)" << endl;
|
|
|
|
|
socketClose(sock);
|
|
|
|
|
emit error(COMMAND);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ERROR: //501
|
|
|
|
|
state = CERROR;
|
|
|
|
|