| 347 | } |
| 348 | |
| 349 | void mime_head::build_head(string& out, bool clean) |
| 350 | { |
| 351 | if (clean) { |
| 352 | out.clear(); |
| 353 | } |
| 354 | if (m_headers) { |
| 355 | std::list<HEADER*>::const_iterator cit = m_headers->begin(); |
| 356 | for (; cit != m_headers->end(); ++cit) { |
| 357 | out.format_append("%s: %s\r\n", |
| 358 | (*cit)->name, (*cit)->value); |
| 359 | } |
| 360 | } |
| 361 | char buf[64]; |
| 362 | rfc822 rfc; |
| 363 | rfc.mkdate_cst(time(NULL), buf, sizeof(buf)); |
| 364 | out.format_append("Date: %s\r\n", buf); |
| 365 | |
| 366 | if (m_from) { |
| 367 | out.format_append("From: %s\r\n", m_from->c_str()); |
| 368 | } |
| 369 | if (m_replyto) { |
| 370 | out.format_append("Reply-To: %s\r\n", m_replyto->c_str()); |
| 371 | } |
| 372 | if (m_returnpath) { |
| 373 | out.format_append("Return-Path: %s\r\n", m_returnpath->c_str()); |
| 374 | } |
| 375 | if (m_tos) { |
| 376 | append_recipients(out, "To", *m_tos); |
| 377 | } |
| 378 | if (m_ccs) { |
| 379 | append_recipients(out, "Cc", *m_ccs); |
| 380 | } |
| 381 | if (m_bccs) { |
| 382 | append_recipients(out, "Bcc", *m_bccs); |
| 383 | } |
| 384 | if (m_subject) { |
| 385 | out.format_append("Subject: %s\r\n", m_subject->c_str()); |
| 386 | } |
| 387 | out.append("MIME-Version: 1.0\r\n"); |
| 388 | out.format_append("Content-Type: %s/%s", get_ctype(), get_stype()); |
| 389 | if (m_boundary) { |
| 390 | out.format_append(";\r\n\tboundary=\"%s\"\r\n", |
| 391 | m_boundary->c_str()); |
| 392 | } else { |
| 393 | out.append("\r\n"); |
| 394 | } |
| 395 | |
| 396 | out.append("\r\n"); |
| 397 | } |
| 398 | |
| 399 | } // namespace acl |
| 400 |
no test coverage detected