diff --git a/3rd_smtpclient/mimemessage.cpp b/3rd_smtpclient/mimemessage.cpp index f419936b..fdc687c0 100644 --- a/3rd_smtpclient/mimemessage.cpp +++ b/3rd_smtpclient/mimemessage.cpp @@ -5,7 +5,10 @@ #include MimeMessage::MimeMessage(bool createAutoMimeContent) : - hEncoding(MimePart::_8Bit) + sender(nullptr) + , content(nullptr) + , hEncoding(MimePart::_8Bit) + { if (createAutoMimeContent) { this->content = new MimeMultiPart(); @@ -14,6 +17,26 @@ MimeMessage::MimeMessage(bool createAutoMimeContent) : MimeMessage::~MimeMessage() { + //释放内存 + if (sender) { + delete sender; + sender = nullptr; + } + + if (content) { + delete content; + content = nullptr; + } + + qDeleteAll(recipientsTo); + recipientsTo.clear(); + + qDeleteAll(recipientsCc); + recipientsCc.clear(); + + qDeleteAll(recipientsBcc); + recipientsBcc.clear(); + } MimePart &MimeMessage::getContent() diff --git a/3rd_smtpclient/mimemultipart.cpp b/3rd_smtpclient/mimemultipart.cpp index dfde103a..a1895ccd 100644 --- a/3rd_smtpclient/mimemultipart.cpp +++ b/3rd_smtpclient/mimemultipart.cpp @@ -26,7 +26,9 @@ MimeMultiPart::MimeMultiPart(MultiPartType type) MimeMultiPart::~MimeMultiPart() { - + //释放内存 + qDeleteAll(parts); + parts.clear(); } void MimeMultiPart::addPart(MimePart *part) diff --git a/emailtool/sendemailthread.cpp b/emailtool/sendemailthread.cpp index e8a1993a..1beefce3 100644 --- a/emailtool/sendemailthread.cpp +++ b/emailtool/sendemailthread.cpp @@ -72,10 +72,10 @@ void SendEmailThread::run() //构建邮件标题 message.setSubject(emialTitle); - //构建邮件正文 - MimeHtml text; - text.setHtml(content); - message.addPart(&text); + //构建邮件正文(传递指针,并且统一将内存控制权交给MimeMessage + MimeHtml *ptext = new MimeHtml; + ptext->setHtml(content); + message.addPart(ptext); //构建附件-报警图像 if (fileName.length() > 0) {