Projet Bee-Honey't  1.0
BTS SN 2019
Types publics | Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe SimpleMail::MimePart

#include <mimepart.h>

Graphe de collaboration de SimpleMail::MimePart:
Collaboration graph

Types publics

enum  Encoding { _7Bit, _8Bit, Base64, QuotedPrintable }
 

Fonctions membres publiques

 MimePart ()
 
 MimePart (const MimePart &other)
 
virtual ~MimePart ()
 
MimePartoperator= (const MimePart &other)
 
QByteArray header () const
 
QByteArray content () const
 
void setContent (const QByteArray &content)
 
void setHeader (const QByteArray &header)
 
void addHeaderLine (const QByteArray &line)
 
void setContentId (const QByteArray &cId)
 
QByteArray contentId () const
 
void setContentName (const QByteArray &contentName)
 
QByteArray contentName () const
 
void setContentType (const QByteArray &contentType)
 
QByteArray contentType () const
 
void setCharset (const QByteArray &charset)
 
QByteArray charset () const
 
void setEncoding (Encoding enc)
 
Encoding encoding () const
 
void setData (const QString &data)
 
QString data () const
 
MimeContentFormattercontentFormatter ()
 
bool write (QIODevice *device)
 

Fonctions membres protégées

 MimePart (MimePartPrivate *d)
 
virtual bool writeData (QIODevice *device)
 
MimePartPrivated_func ()
 
const MimePartPrivated_func () const
 

Attributs protégés

QSharedDataPointer< MimePartPrivated_ptr
 

Documentation des énumérations membres

◆ Encoding

Valeurs énumérées
_7Bit 
_8Bit 
Base64 
QuotedPrintable 
35  {
36  _7Bit,
37  _8Bit,
38  Base64,
40  };
Definition: mimepart.h:36
Definition: mimepart.h:38
Definition: mimepart.h:37
Definition: mimepart.h:39

Documentation des constructeurs et destructeur

◆ MimePart() [1/3]

MimePart::MimePart ( )
27  : d_ptr(new MimePartPrivate)
28 {
29  qDebug() << Q_FUNC_INFO;
30 }
QSharedDataPointer< MimePartPrivate > d_ptr
Definition: mimepart.h:82
Definition: mimepart_p.h:28

◆ MimePart() [2/3]

MimePart::MimePart ( const MimePart other)

Références charset(), content(), contentId(), contentName(), contentType(), encoding(), et header().

33 {
34  Q_D(MimePart);
35  d->contentCharset = other.charset();
36 
37  if (d->contentDevice) {
38  delete d->contentDevice;
39  }
40  d->contentDevice = new QBuffer;
41  d->contentDevice->open(QBuffer::ReadWrite);
42  d->contentDevice->write(other.content());
43 
44  d->contentId = other.contentId();
45  d->contentName = other.contentName();
46  d->contentType = other.contentType();
47  d->contentEncoding = other.encoding();
48  d->header = other.header();
49 }
QByteArray content() const
Definition: mimepart.cpp:106
QByteArray contentName() const
Definition: mimepart.cpp:133
Definition: mimepart.h:32
QByteArray contentType() const
Definition: mimepart.cpp:145
QByteArray charset() const
Definition: mimepart.cpp:157
QByteArray header() const
Definition: mimepart.cpp:100
Encoding encoding() const
Definition: mimepart.cpp:169
QByteArray contentId() const
Definition: mimepart.cpp:121

◆ ~MimePart()

MimePart::~MimePart ( )
virtual
52 {
53  qDebug() << Q_FUNC_INFO;
54 }

◆ MimePart() [3/3]

MimePart::MimePart ( MimePartPrivate d)
protected
281  : d_ptr(d)
282 {
283 
284 }
QSharedDataPointer< MimePartPrivate > d_ptr
Definition: mimepart.h:82

Documentation des fonctions membres

◆ addHeaderLine()

void MimePart::addHeaderLine ( const QByteArray &  line)
95 {
96  Q_D(MimePart);
97  d->header.append(line + "\r\n");
98 }
Definition: mimepart.h:32

◆ charset()

QByteArray MimePart::charset ( ) const

Référencé par MimePart(), operator=(), et setCharset().

158 {
159  Q_D(const MimePart);
160  return d->contentCharset;
161 }
Definition: mimepart.h:32

◆ content()

QByteArray MimePart::content ( ) const

Référencé par MimePart(), et operator=().

107 {
108  Q_D(const MimePart);
109  if (d->contentDevice && d->contentDevice->seek(0)) {
110  return d->contentDevice->readAll();
111  }
112  return QByteArray();
113 }
Definition: mimepart.h:32

◆ contentFormatter()

MimeContentFormatter * MimePart::contentFormatter ( )
224 {
225  Q_D(MimePart);
226  return &d->formatter;
227 }
Definition: mimepart.h:32

◆ contentId()

QByteArray MimePart::contentId ( ) const

Référencé par MimePart(), et operator=().

122 {
123  Q_D(const MimePart);
124  return d->contentId;
125 }
Definition: mimepart.h:32

◆ contentName()

QByteArray MimePart::contentName ( ) const

Référencé par MimePart(), operator=(), et setContentName().

134 {
135  Q_D(const MimePart);
136  return d->contentName;
137 }
Definition: mimepart.h:32

◆ contentType()

QByteArray MimePart::contentType ( ) const

Référencé par MimePart(), operator=(), et setContentType().

146 {
147  Q_D(const MimePart);
148  return d->contentType;
149 }
Definition: mimepart.h:32

◆ d_func() [1/2]

MimePartPrivate * MimePart::d_func ( )
protected

Références d_ptr.

327 {
328  return d_ptr.data();
329 }
QSharedDataPointer< MimePartPrivate > d_ptr
Definition: mimepart.h:82

◆ d_func() [2/2]

const MimePartPrivate* SimpleMail::MimePart::d_func ( ) const
protected
87  {
88  return d_ptr.constData();
89  }
QSharedDataPointer< MimePartPrivate > d_ptr
Definition: mimepart.h:82

◆ data()

QString MimePart::data ( ) const

Références _7Bit, _8Bit, Base64, SimpleMail::QuotedPrintable::decode(), et QuotedPrintable.

Référencé par SimpleMail::MimeText::text().

198 {
199  Q_D(const MimePart);
200 
201  if (!d->contentDevice || !d->contentDevice->seek(0)) {
202  return QString();
203  }
204 
205  QString ret;
206  switch (d->contentEncoding) {
207  case _7Bit:
208  ret = QString::fromLatin1(d->contentDevice->readAll());
209  break;
210  case _8Bit:
211  ret = QString::fromUtf8(d->contentDevice->readAll());
212  break;
213  case Base64:
214  ret = QString::fromUtf8(QByteArray::fromBase64(d->contentDevice->readAll()));
215  break;
216  case QuotedPrintable:
217  ret = QString::fromUtf8(QuotedPrintable::decode(d->contentDevice->readAll()));
218  break;
219  }
220  return ret;
221 }
Definition: mimepart.h:36
static QByteArray decode(const QByteArray &input)
Definition: quotedprintable.cpp:89
Definition: mimepart.h:38
Definition: mimepart.h:37
Definition: mimepart.h:32
Definition: mimepart.h:39

◆ encoding()

MimePart::Encoding MimePart::encoding ( ) const

Référencé par MimePart(), et operator=().

170 {
171  Q_D(const MimePart);
172  return d->contentEncoding;
173 }
Definition: mimepart.h:32

◆ header()

QByteArray MimePart::header ( ) const

Référencé par MimePart(), operator=(), et setHeader().

101 {
102  Q_D(const MimePart);
103  return d->header;
104 }
Definition: mimepart.h:32

◆ operator=()

MimePart & MimePart::operator= ( const MimePart other)

Références charset(), content(), contentId(), contentName(), contentType(), encoding(), et header().

57 {
58  Q_D(MimePart);
59  d->contentCharset = other.charset();
60 
61  if (d->contentDevice) {
62  delete d->contentDevice;
63  }
64  d->contentDevice = new QBuffer;
65  d->contentDevice->open(QBuffer::ReadWrite);
66  d->contentDevice->write(other.content());
67 
68  d->contentId = other.contentId();
69  d->contentName = other.contentName();
70  d->contentType = other.contentType();
71  d->contentEncoding = other.encoding();
72  d->header = other.header();
73 
74  return *this;
75 }
QByteArray content() const
Definition: mimepart.cpp:106
QByteArray contentName() const
Definition: mimepart.cpp:133
Definition: mimepart.h:32
QByteArray contentType() const
Definition: mimepart.cpp:145
QByteArray charset() const
Definition: mimepart.cpp:157
QByteArray header() const
Definition: mimepart.cpp:100
Encoding encoding() const
Definition: mimepart.cpp:169
QByteArray contentId() const
Definition: mimepart.cpp:121

◆ setCharset()

void MimePart::setCharset ( const QByteArray &  charset)

Références charset().

152 {
153  Q_D(MimePart);
154  d->contentCharset = charset;
155 }
Definition: mimepart.h:32
QByteArray charset() const
Definition: mimepart.cpp:157

◆ setContent()

void MimePart::setContent ( const QByteArray &  content)

Référencé par SimpleMail::MimeFile::MimeFile().

78 {
79  Q_D(MimePart);
80  if (d->contentDevice) {
81  delete d->contentDevice;
82  }
83  d->contentDevice = new QBuffer;
84  d->contentDevice->open(QBuffer::ReadWrite);
85  d->contentDevice->write(content);
86 }
QByteArray content() const
Definition: mimepart.cpp:106
Definition: mimepart.h:32

◆ setContentId()

void MimePart::setContentId ( const QByteArray &  cId)
116 {
117  Q_D(MimePart);
118  d->contentId = cId;
119 }
Definition: mimepart.h:32

◆ setContentName()

void MimePart::setContentName ( const QByteArray &  contentName)

Références contentName().

128 {
129  Q_D(MimePart);
130  d->contentName = contentName;
131 }
QByteArray contentName() const
Definition: mimepart.cpp:133
Definition: mimepart.h:32

◆ setContentType()

void MimePart::setContentType ( const QByteArray &  contentType)

Références contentType().

140 {
141  Q_D(MimePart);
142  d->contentType = contentType;
143 }
Definition: mimepart.h:32
QByteArray contentType() const
Definition: mimepart.cpp:145

◆ setData()

void MimePart::setData ( const QString &  data)

Références _7Bit, _8Bit, Base64, et QuotedPrintable.

Référencé par SimpleMail::MimeText::MimeText(), et SimpleMail::MimeText::setText().

176 {
177  Q_D(MimePart);
178 
179  if (d->contentDevice) {
180  delete d->contentDevice;
181  }
182  d->contentDevice = new QBuffer;
183  d->contentDevice->open(QBuffer::ReadWrite);
184 
185  switch (d->contentEncoding) {
186  case _7Bit:
187  d->contentDevice->write(data.toLatin1());
188  break;
189  case _8Bit:
190  case Base64:
191  case QuotedPrintable:
192  d->contentDevice->write(data.toUtf8());
193  break;
194  }
195 }
Definition: mimepart.h:36
Definition: mimepart.h:38
Definition: mimepart.h:37
Definition: mimepart.h:32
QString data() const
Definition: mimepart.cpp:197
Definition: mimepart.h:39

◆ setEncoding()

void MimePart::setEncoding ( Encoding  enc)
164 {
165  Q_D(MimePart);
166  d->contentEncoding = enc;
167 }
Definition: mimepart.h:32

◆ setHeader()

void MimePart::setHeader ( const QByteArray &  header)

Références header().

89 {
90  Q_D(MimePart);
91  d->header = header;
92 }
Definition: mimepart.h:32
QByteArray header() const
Definition: mimepart.cpp:100

◆ write()

bool MimePart::write ( QIODevice *  device)

Références _7Bit, _8Bit, Base64, QuotedPrintable, et writeData().

230 {
231  Q_D(const MimePart);
232 
233  QByteArray headers;
234 
235  // Content-Type
236  headers.append("Content-Type: " + d->contentType);
237  if (!d->contentName.isEmpty()) {
238  headers.append("; name=\"" + d->contentName);
239  }
240  if (!d->contentCharset.isEmpty()) {
241  headers.append("; charset=" + d->contentCharset);
242  }
243  if (!d->contentBoundary.isEmpty()) {
244  headers.append("; boundary=" + d->contentBoundary);
245  }
246  headers.append("\r\n");
247 
248  // Content-Transfer-Encoding
249  switch (d->contentEncoding) {
250  case _7Bit:
251  headers.append("Content-Transfer-Encoding: 7bit\r\n");
252  break;
253  case _8Bit:
254  headers.append("Content-Transfer-Encoding: 8bit\r\n");
255  break;
256  case Base64:
257  headers.append("Content-Transfer-Encoding: base64\r\n");
258  break;
259  case QuotedPrintable:
260  headers.append("Content-Transfer-Encoding: quoted-printable\r\n");
261  break;
262  }
263 
264  // Content-Id
265  if (!d->contentId.isNull()) {
266  headers.append("Content-ID: <" + d->contentId + ">\r\n");
267  }
268 
269  // Addition header lines
270  headers.append(d->header + "\r\n");
271 
272  // Write headers
273  if (device->write(headers) != headers.size()) {
274  return false;
275  }
276 
277  // Write content data
278  return writeData(device);
279 }
Definition: mimepart.h:36
Definition: mimepart.h:38
Definition: mimepart.h:37
virtual bool writeData(QIODevice *device)
Definition: mimepart.cpp:286
Definition: mimepart.h:32
Definition: mimepart.h:39

◆ writeData()

bool MimePart::writeData ( QIODevice *  device)
protectedvirtual

Réimplémentée dans SimpleMail::MimeMultiPart.

Références _7Bit, _8Bit, Base64, et QuotedPrintable.

Référencé par write().

287 {
288  Q_D(MimePart);
289 
290  /* === Content === */
291  QIODevice *input = d->contentDevice;
292  if (!input->isOpen()) {
293  if (!input->open(QIODevice::ReadOnly)) {
294  return false;
295  }
296  } else if (!input->seek(0)) {
297  return false;
298  }
299 
300  switch (d->contentEncoding) {
301  case MimePart::_7Bit:
302  case MimePart::_8Bit:
303  if (!d->writeRaw(input, device)) {
304  return false;
305  }
306  break;
307  case MimePart::Base64:
308  if (!d->writeBase64(input, device)) {
309  return false;
310  }
311  break;
313  if (!d->writeQuotedPrintable(input, device)) {
314  return false;
315  }
316  break;
317  }
318 
319  if (device->write("\r\n", 2) != 2) {
320  return false;
321  }
322 
323  return true;
324 }
Definition: mimepart.h:36
Definition: mimepart.h:38
Definition: mimepart.h:37
Definition: mimepart.h:32
Definition: mimepart.h:39

Documentation des données membres

◆ d_ptr

QSharedDataPointer<MimePartPrivate> SimpleMail::MimePart::d_ptr
protected

Référencé par d_func().


La documentation de cette classe a été générée à partir des fichiers suivants :