Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
c0bb640a
Commit
c0bb640a
authored
Jul 26, 2015
by
Zach
Browse files
Merge pull request #1295 from ctrlaltca/servatrice_email_v2
Refactor servatrice email send
parents
9aa16157
9c38b084
Changes
49
Hide whitespace changes
Inline
Side-by-side
servatrice/CMakeLists.txt
View file @
c0bb640a
...
...
@@ -16,18 +16,11 @@ SET(servatrice_SOURCES
src/isl_interface.cpp
src/signalhandler.cpp
${
VERSION_STRING_CPP
}
src/smtp/emailaddress.cpp
src/smtp/mimeattachment.cpp
src/smtp/mimecontentformatter.cpp
src/smtp/mimefile.cpp
src/smtp/mimehtml.cpp
src/smtp/mimeinlinefile.cpp
src/smtp/mimemessage.cpp
src/smtp/mimemultipart.cpp
src/smtp/mimepart.cpp
src/smtp/mimetext.cpp
src/smtp/quotedprintable.cpp
src/smtp/smtpclient.cpp
src/smtpclient.cpp
src/smtp/qxthmac.cpp
src/smtp/qxtmailattachment.cpp
src/smtp/qxtmailmessage.cpp
src/smtp/qxtsmtp.cpp
)
set
(
servatrice_RESOURCES servatrice.qrc
)
...
...
servatrice/migrations/servatrice_0001_to_0002.sql
0 → 100644
View file @
c0bb640a
-- Servatrice db migration from version 1 to version 2
-- FIX #1281
CREATE
TABLE
IF
NOT
EXISTS
`cockatrice_activation_emails`
(
`name`
varchar
(
35
)
NOT
NULL
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
utf8
;
UPDATE
cockatrice_schema_version
SET
version
=
2
WHERE
version
=
1
;
servatrice/servatrice.ini.example
View file @
c0bb640a
...
...
@@ -90,11 +90,11 @@ allowpunctuationprefix=false
[smtp]
; Connectin type: currently supported method are "tcp"
,
"ssl"
and "tls"
; Connectin type: currently supported method are "tcp"
and
"ssl"
; tls is autodetected if available
connection=tcp
; A
uth type: currently supported method are "pla
in
"
an
d "login"
a
uth=plain
; A
ccept all certificates: in ssl mode, enable this if your server is us
in
g
an
invalid/self signed certificate
a
cceptallcerts=false;
; Hostname or IP addres of the smtp server
host=localhost
...
...
servatrice/servatrice.sql
View file @
c0bb640a
...
...
@@ -205,3 +205,7 @@ CREATE TABLE IF NOT EXISTS `cockatrice_log` (
KEY
`target_id`
(
`target_id`
),
KEY
`target_name`
(
`target_name`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
utf8
;
CREATE
TABLE
IF
NOT
EXISTS
`cockatrice_activation_emails`
(
`name`
varchar
(
35
)
NOT
NULL
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
utf8
;
servatrice/src/main.cpp
View file @
c0bb640a
...
...
@@ -29,6 +29,7 @@
#include
"server_logger.h"
#include
"settingscache.h"
#include
"signalhandler.h"
#include
"smtpclient.h"
#include
"rng_sfmt.h"
#include
"version_string.h"
#include
<google/protobuf/stubs/common.h>
...
...
@@ -38,6 +39,7 @@ ServerLogger *logger;
QThread
*
loggerThread
;
SettingsCache
*
settingsCache
;
SignalHandler
*
signalhandler
;
SmtpClient
*
smtpClient
;
/* Prototypes */
...
...
@@ -181,6 +183,8 @@ int main(int argc, char *argv[])
testRNG
();
if
(
testHashFunction
)
testHash
();
smtpClient
=
new
SmtpClient
();
Servatrice
*
server
=
new
Servatrice
();
QObject
::
connect
(
server
,
SIGNAL
(
destroyed
()),
&
app
,
SLOT
(
quit
()),
Qt
::
QueuedConnection
);
...
...
@@ -200,6 +204,7 @@ int main(int argc, char *argv[])
std
::
cerr
<<
"-------------------------"
<<
std
::
endl
;
}
delete
smtpClient
;
delete
rng
;
delete
signalhandler
;
delete
settingsCache
;
...
...
servatrice/src/main.h
View file @
c0bb640a
...
...
@@ -4,9 +4,11 @@
class
ServerLogger
;
class
QThread
;
class
SettingsCache
;
class
SmtpClient
;
extern
ServerLogger
*
logger
;
extern
QThread
*
loggerThread
;
extern
SettingsCache
*
settingsCache
;
extern
SmtpClient
*
smtpClient
;
#endif
servatrice/src/servatrice.cpp
View file @
c0bb640a
...
...
@@ -34,6 +34,7 @@
#include
"server_logger.h"
#include
"main.h"
#include
"decklist.h"
#include
"smtpclient.h"
#include
"pb/event_server_message.pb.h"
#include
"pb/event_server_shutdown.pb.h"
#include
"pb/event_connection_closed.pb.h"
...
...
@@ -473,6 +474,32 @@ void Servatrice::statusUpdate()
query
->
bindValue
(
":tx"
,
tx
);
query
->
bindValue
(
":rx"
,
rx
);
servatriceDatabaseInterface
->
execSqlQuery
(
query
);
// send activation emails
bool
registrationEnabled
=
settingsCache
->
value
(
"registration/enabled"
,
false
).
toBool
();
bool
requireEmailForRegistration
=
settingsCache
->
value
(
"registration/requireemail"
,
true
).
toBool
();
if
(
registrationEnabled
&&
requireEmailForRegistration
)
{
QSqlQuery
*
query
=
servatriceDatabaseInterface
->
prepareQuery
(
"select a.name, b.email, b.token from {prefix}_activation_emails a left join {prefix}_users b on a.name = b.name"
);
if
(
!
servatriceDatabaseInterface
->
execSqlQuery
(
query
))
return
;
QSqlQuery
*
queryDelete
=
servatriceDatabaseInterface
->
prepareQuery
(
"delete from {prefix}_activation_emails where name = :name"
);
while
(
query
->
next
())
{
const
QString
userName
=
query
->
value
(
0
).
toString
();
const
QString
emailAddress
=
query
->
value
(
1
).
toString
();
const
QString
token
=
query
->
value
(
2
).
toString
();
if
(
smtpClient
->
enqueueActivationTokenMail
(
userName
,
emailAddress
,
token
))
{
queryDelete
->
bindValue
(
":name"
,
userName
);
servatriceDatabaseInterface
->
execSqlQuery
(
queryDelete
);
}
}
smtpClient
->
sendAllEmails
();
}
}
void
Servatrice
::
scheduleShutdown
(
const
QString
&
reason
,
int
minutes
)
...
...
servatrice/src/servatrice_database_interface.h
View file @
c0bb640a
...
...
@@ -9,7 +9,7 @@
#include
"server.h"
#include
"server_database_interface.h"
#define DATABASE_SCHEMA_VERSION
1
#define DATABASE_SCHEMA_VERSION
2
class
Servatrice
;
...
...
servatrice/src/serversocketinterface.cpp
View file @
c0bb640a
...
...
@@ -59,8 +59,6 @@
#include
"pb/serverinfo_user.pb.h"
#include
"pb/serverinfo_deckstorage.pb.h"
#include
"smtp/SmtpMime"
#include
"version_string.h"
#include
<string>
#include
<iostream>
...
...
@@ -854,8 +852,11 @@ Response::ResponseCode ServerSocketInterface::cmdRegisterAccount(const Command_R
qDebug
()
<<
"Accepted register command for user: "
<<
userName
;
if
(
requireEmailForRegistration
)
{
// TODO call a slot on another thread to send email
sendActivationTokenMail
(
userName
,
emailAddress
,
token
);
QSqlQuery
*
query
=
sqlInterface
->
prepareQuery
(
"insert into {prefix}_activation_emails (name) values(:name)"
);
query
->
bindValue
(
":name"
,
userName
);
if
(
!
sqlInterface
->
execSqlQuery
(
query
))
return
Response
::
RespRegistrationFailed
;
return
Response
::
RespRegistrationAcceptedNeedsActivation
;
}
else
{
return
Response
::
RespRegistrationAccepted
;
...
...
@@ -865,88 +866,6 @@ Response::ResponseCode ServerSocketInterface::cmdRegisterAccount(const Command_R
}
}
bool
ServerSocketInterface
::
sendActivationTokenMail
(
const
QString
&
nickname
,
const
QString
&
recipient
,
const
QString
&
token
)
{
QString
tmp
=
settingsCache
->
value
(
"smtp/connection"
,
"tcp"
).
toString
();
SmtpClient
::
ConnectionType
connection
=
SmtpClient
::
TcpConnection
;
if
(
tmp
==
"ssl"
)
connection
=
SmtpClient
::
SslConnection
;
else
if
(
tmp
==
"tls"
)
connection
=
SmtpClient
::
TlsConnection
;
tmp
=
settingsCache
->
value
(
"smtp/auth"
,
"plain"
).
toString
();
SmtpClient
::
AuthMethod
auth
=
SmtpClient
::
AuthPlain
;
if
(
tmp
==
"login"
)
auth
=
SmtpClient
::
AuthLogin
;
QString
host
=
settingsCache
->
value
(
"smtp/host"
,
"localhost"
).
toString
();
int
port
=
settingsCache
->
value
(
"smtp/port"
,
25
).
toInt
();
QString
username
=
settingsCache
->
value
(
"smtp/username"
,
""
).
toString
();
QString
password
=
settingsCache
->
value
(
"smtp/password"
,
""
).
toString
();
QString
email
=
settingsCache
->
value
(
"smtp/email"
,
""
).
toString
();
QString
name
=
settingsCache
->
value
(
"smtp/name"
,
""
).
toString
();
QString
subject
=
settingsCache
->
value
(
"smtp/subject"
,
""
).
toString
();
QString
body
=
settingsCache
->
value
(
"smtp/body"
,
""
).
toString
();
if
(
email
.
isEmpty
())
{
qDebug
()
<<
"[MAIL] Missing email field"
<<
endl
;
return
false
;
}
if
(
body
.
isEmpty
())
{
qDebug
()
<<
"[MAIL] Missing body field"
<<
endl
;
return
false
;
}
if
(
recipient
.
isEmpty
())
{
qDebug
()
<<
"[MAIL] Missing recipient field"
<<
endl
;
return
false
;
}
if
(
token
.
isEmpty
())
{
qDebug
()
<<
"[MAIL] Missing token field"
<<
endl
;
return
false
;
}
SmtpClient
smtp
(
host
,
port
,
connection
);
smtp
.
setUser
(
username
);
smtp
.
setPassword
(
password
);
smtp
.
setAuthMethod
(
auth
);
MimeMessage
message
;
EmailAddress
sender
(
email
,
name
);
message
.
setSender
(
&
sender
);
EmailAddress
to
(
recipient
,
nickname
);
message
.
addRecipient
(
&
to
);
message
.
setSubject
(
subject
);
MimeText
text
;
text
.
setText
(
body
.
replace
(
"%username"
,
nickname
).
replace
(
"%token"
,
token
));
message
.
addPart
(
&
text
);
// Now we can send the mail
if
(
!
smtp
.
connectToHost
())
{
qDebug
()
<<
"[MAIL] Failed to connect to host"
<<
host
<<
"on port"
<<
port
;
return
false
;
}
if
(
!
smtp
.
login
())
{
qDebug
()
<<
"[MAIL] Failed to login as "
<<
username
;
return
false
;
}
if
(
!
smtp
.
sendMail
(
message
))
{
qDebug
()
<<
"[MAIL] Failed to send mail to "
<<
recipient
;
return
false
;
}
smtp
.
quit
();
qDebug
()
<<
"[MAIL] Sent activation email to "
<<
recipient
<<
" for nickname "
<<
nickname
;
return
true
;
}
bool
ServerSocketInterface
::
tooManyRegistrationAttempts
(
const
QString
&
ipAddress
)
{
// TODO: implement
...
...
servatrice/src/serversocketinterface.h
View file @
c0bb640a
...
...
@@ -108,8 +108,6 @@ private:
Response
::
ResponseCode
cmdAccountEdit
(
const
Command_AccountEdit
&
cmd
,
ResponseContainer
&
rc
);
Response
::
ResponseCode
cmdAccountImage
(
const
Command_AccountImage
&
cmd
,
ResponseContainer
&
rc
);
Response
::
ResponseCode
cmdAccountPassword
(
const
Command_AccountPassword
&
cmd
,
ResponseContainer
&
rc
);
bool
sendActivationTokenMail
(
const
QString
&
nickname
,
const
QString
&
recipient
,
const
QString
&
token
);
public:
ServerSocketInterface
(
Servatrice
*
_server
,
Servatrice_DatabaseInterface
*
_databaseInterface
,
QObject
*
parent
=
0
);
~
ServerSocketInterface
();
...
...
servatrice/src/smtp/SmtpMime
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#ifndef SMTPMIME_H
#define SMTPMIME_H
#include "smtpclient.h"
#include "mimepart.h"
#include "mimehtml.h"
#include "mimeattachment.h"
#include "mimemessage.h"
#include "mimetext.h"
#include "mimeinlinefile.h"
#include "mimefile.h"
#endif // SMTPMIME_H
servatrice/src/smtp/emailaddress.cpp
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#include
"emailaddress.h"
/* [1] Constructors and Destructors */
EmailAddress
::
EmailAddress
(
const
QString
&
address
,
const
QString
&
name
)
{
this
->
address
=
address
;
this
->
name
=
name
;
}
EmailAddress
::~
EmailAddress
()
{
}
/* [1] --- */
/* [2] Getters and Setters */
void
EmailAddress
::
setName
(
const
QString
&
name
)
{
this
->
name
=
name
;
}
void
EmailAddress
::
setAddress
(
const
QString
&
address
)
{
this
->
address
=
address
;
}
const
QString
&
EmailAddress
::
getName
()
const
{
return
name
;
}
const
QString
&
EmailAddress
::
getAddress
()
const
{
return
address
;
}
/* [2] --- */
servatrice/src/smtp/emailaddress.h
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#ifndef EMAILADDRESS_H
#define EMAILADDRESS_H
#include
<QObject>
#include
"smtpexports.h"
class
SMTP_EXPORT
EmailAddress
:
public
QObject
{
Q_OBJECT
public:
/* [1] Constructors and Destructors */
EmailAddress
();
EmailAddress
(
const
QString
&
address
,
const
QString
&
name
=
""
);
~
EmailAddress
();
/* [1] --- */
/* [2] Getters and Setters */
void
setName
(
const
QString
&
name
);
void
setAddress
(
const
QString
&
address
);
const
QString
&
getName
()
const
;
const
QString
&
getAddress
()
const
;
/* [2] --- */
private:
/* [3] Private members */
QString
name
;
QString
address
;
/* [3] --- */
};
#endif // EMAILADDRESS_H
servatrice/src/smtp/mimeattachment.cpp
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#include
"mimeattachment.h"
#include
<QFileInfo>
/* [1] Constructors and Destructors */
MimeAttachment
::
MimeAttachment
(
QFile
*
file
)
:
MimeFile
(
file
)
{
}
MimeAttachment
::
MimeAttachment
(
const
QByteArray
&
stream
,
const
QString
&
fileName
)
:
MimeFile
(
stream
,
fileName
)
{
}
MimeAttachment
::~
MimeAttachment
()
{
}
/* [1] --- */
/* [2] Protected methods */
void
MimeAttachment
::
prepare
()
{
this
->
header
+=
"Content-disposition: attachment
\r\n
"
;
/* !!! IMPORTANT !!! */
MimeFile
::
prepare
();
}
/* [2] --- */
servatrice/src/smtp/mimeattachment.h
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#ifndef MIMEATTACHMENT_H
#define MIMEATTACHMENT_H
#include
<QFile>
#include
"mimepart.h"
#include
"mimefile.h"
#include
"smtpexports.h"
class
SMTP_EXPORT
MimeAttachment
:
public
MimeFile
{
Q_OBJECT
public:
/* [1] Constructors and Destructors */
MimeAttachment
(
QFile
*
file
);
MimeAttachment
(
const
QByteArray
&
stream
,
const
QString
&
fileName
);
~
MimeAttachment
();
/* [1] --- */
protected:
/* [2] Protected methods */
virtual
void
prepare
();
/* [2] --- */
};
#endif // MIMEATTACHMENT_H
servatrice/src/smtp/mimecontentformatter.cpp
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#include
"mimecontentformatter.h"
MimeContentFormatter
::
MimeContentFormatter
(
int
max_length
)
:
max_length
(
max_length
)
{}
QString
MimeContentFormatter
::
format
(
const
QString
&
content
,
bool
quotedPrintable
)
const
{
QString
out
;
int
chars
=
0
;
for
(
int
i
=
0
;
i
<
content
.
length
()
;
++
i
)
{
chars
++
;
if
(
!
quotedPrintable
)
{
if
(
chars
>
max_length
)
{
out
.
append
(
"
\r\n
"
);
chars
=
1
;
}
}
else
{
if
(
content
[
i
]
==
'\n'
)
{
// new line
out
.
append
(
content
[
i
]);
chars
=
0
;
continue
;
}
if
((
chars
>
max_length
-
1
)
||
((
content
[
i
]
==
'='
)
&&
(
chars
>
max_length
-
3
)
))
{
out
.
append
(
'='
);
out
.
append
(
"
\r\n
"
);
chars
=
1
;
}
}
out
.
append
(
content
[
i
]);
}
return
out
;
}
void
MimeContentFormatter
::
setMaxLength
(
int
l
)
{
max_length
=
l
;
}
int
MimeContentFormatter
::
getMaxLength
()
const
{
return
max_length
;
}
servatrice/src/smtp/mimecontentformatter.h
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#ifndef MIMECONTENTFORMATTER_H
#define MIMECONTENTFORMATTER_H
#include
<QObject>
#include
<QByteArray>
#include
"smtpexports.h"
class
SMTP_EXPORT
MimeContentFormatter
:
public
QObject
{
Q_OBJECT
public:
MimeContentFormatter
(
int
max_length
=
76
);
void
setMaxLength
(
int
l
);
int
getMaxLength
()
const
;
QString
format
(
const
QString
&
content
,
bool
quotedPrintable
=
false
)
const
;
protected:
int
max_length
;
};
#endif // MIMECONTENTFORMATTER_H
servatrice/src/smtp/mimefile.cpp
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#include
"mimefile.h"
#include
<QFileInfo>
/* [1] Constructors and Destructors */
MimeFile
::
MimeFile
(
QFile
*
file
)
{
this
->
file
=
file
;
this
->
cType
=
"application/octet-stream"
;
this
->
cName
=
QFileInfo
(
*
file
).
fileName
();
this
->
cEncoding
=
Base64
;
}
MimeFile
::
MimeFile
(
const
QByteArray
&
stream
,
const
QString
&
fileName
)
{
this
->
cEncoding
=
Base64
;
this
->
cType
=
"application/octet-stream"
;
this
->
file
=
0
;
this
->
cName
=
fileName
;
this
->
content
=
stream
;
}
MimeFile
::~
MimeFile
()
{
if
(
file
)
delete
file
;
}
/* [1] --- */
/* [2] Getters and setters */
/* [2] --- */
/* [3] Protected methods */
void
MimeFile
::
prepare
()
{
if
(
this
->
file
)
{
file
->
open
(
QIODevice
::
ReadOnly
);
this
->
content
=
file
->
readAll
();
file
->
close
();
}
/* !!! IMPORTANT !!!! */
MimePart
::
prepare
();
}
/* [3] --- */
servatrice/src/smtp/mimefile.h
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#ifndef MIMEFILE_H
#define MIMEFILE_H
#include
"mimepart.h"
#include
<QFile>
#include
"smtpexports.h"
class
SMTP_EXPORT
MimeFile
:
public
MimePart
{
Q_OBJECT
public:
/* [1] Constructors and Destructors */
MimeFile
(
const
QByteArray
&
stream
,
const
QString
&
fileName
);
MimeFile
(
QFile
*
f
);
~
MimeFile
();
/* [1] --- */
/* [2] Getters and Setters */
/* [2] --- */
protected:
/* [3] Protected members */
QFile
*
file
;
/* [3] --- */
/* [4] Protected methods */
virtual
void
prepare
();
/* [4] --- */
};
#endif // MIMEFILE_H
servatrice/src/smtp/mimehtml.cpp
deleted
100644 → 0
View file @
9aa16157
/*
Copyright (c) 2011-2012 - Tőkés Attila
This file is part of SmtpClient for Qt.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
See the LICENSE file for more details.
*/
#include
"mimehtml.h"
/* [1] Constructors and Destructors */
MimeHtml
::
MimeHtml
(
const
QString
&
html
)
:
MimeText
(
html
)
{
this
->
cType
=
"text/html"
;
}
MimeHtml
::~
MimeHtml
()
{}
/* [1] --- */
/* [2] Getters and Setters */
void
MimeHtml
::
setHtml
(
const
QString
&
html
)
{
this
->
text
=
html
;
}
const
QString
&
MimeHtml
::
getHtml
()
const
{
return
text
;
}
/* [2] --- */
/* [3] Protected methods */
void
MimeHtml
::
prepare
()
{
/* !!! IMPORTANT !!! */
MimeText
::
prepare
();
}
/* [3] --- */
Prev
1
2
3
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment