Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the test-emailblob page. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | webmail |
Files: | files | file ages | folders |
SHA3-256: |
8ac5bbbdb0107e61e0873b3ce34f0c9a |
User & Date: | drh 2018-07-17 14:47:09.708 |
Context
2018-07-17
| ||
15:07 | Show the email notification status at the top of the /setup_notification page. ... (check-in: 308f4065 user: drh tags: webmail) | |
14:47 | Add the test-emailblob page. ... (check-in: 8ac5bbbd user: drh tags: webmail) | |
13:54 | Add a reference count field to the emailblob table and triggers to keep the reference count current and to drop entries when the reference count reaches zero. ... (check-in: 94da0fb2 user: drh tags: webmail) | |
Changes
Changes to src/webmail.c.
︙ | ︙ | |||
723 724 725 726 727 728 729 | } db_finalize(&q); @ </table> @ </form> style_footer(); db_end_transaction(0); } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 | } db_finalize(&q); @ </table> @ </form> style_footer(); db_end_transaction(0); } /* ** WEBPAGE: test-emailblob ** ** This page, accessible only to administrators, allows easy viewing of ** the emailblob table - the table that contains the text of email messages ** both inbound and outbound, and transcripts of SMTP sessions. ** ** id=N Show the text of emailblob with emailid==N ** */ void webmail_emailblob_page(void){ int id = atoi(PD("id","0")); Stmt q; login_check_credentials(); if( !g.perm.Setup ){ login_needed(0); return; } add_content_sql_commands(g.db); style_header("emailblob table"); if( id>0 ){ style_submenu_element("Index", "%R/test-emailblob"); @ <ul> db_prepare(&q, "SELECT emailid FROM emailblob WHERE ets=%d", id); while( db_step(&q)==SQLITE_ROW ){ int id = db_column_int(&q, 0); @ <li> <a href="%R/test-emailblob?id=%d(id)">emailblob entry %d(id)</a> } db_finalize(&q); db_prepare(&q, "SELECT euser, estate FROM emailbox WHERE emsgid=%d", id); while( db_step(&q)==SQLITE_ROW ){ const char *zUser = db_column_text(&q, 0); int e = db_column_int(&q, 1); @ <li> emailbox for %h(zUser) state %d(e) } db_finalize(&q); db_prepare(&q, "SELECT efrom, eto FROM emailoutq WHERE emsgid=%d", id); while( db_step(&q)==SQLITE_ROW ){ const char *zFrom = db_column_text(&q, 0); const char *zTo = db_column_text(&q, 1); @ <li> emailoutq message body from %h(zFrom) to %h(zTo) } db_finalize(&q); db_prepare(&q, "SELECT efrom, eto FROM emailoutq WHERE ets=%d", id); while( db_step(&q)==SQLITE_ROW ){ const char *zFrom = db_column_text(&q, 0); const char *zTo = db_column_text(&q, 1); @ <li> emailoutq transcript from %h(zFrom) to %h(zTo) } db_finalize(&q); @ </ul> @ <hr> db_prepare(&q, "SELECT decompress(etxt) FROM emailblob WHERE emailid=%d", id); while( db_step(&q)==SQLITE_ROW ){ const char *zContent = db_column_text(&q, 0); @ <pre>%h(zContent)</pre> } db_finalize(&q); }else{ db_prepare(&q, "SELECT emailid, enref, ets, datetime(etime,'unixepoch')" " FROM emailblob ORDER BY etime DESC, emailid DESC"); @ <table border="1" cellpadding="5" cellspacing="0"> @ <tr><th> emailid <th> enref <th> ets <th> etime</tr> while( db_step(&q)==SQLITE_ROW ){ int id = db_column_int(&q, 0); int nref = db_column_int(&q, 1); int ets = db_column_int(&q, 2); const char *zDate = db_column_text(&q, 3); @ <tr> @ <td><a href="%R/test-emailblob?id=%d(id)">%d(id)</a> @ <td>%d(nref)</td> @ <td>%d(ets)</td> @ <td>%h(zDate)</td> @ </tr> } @ </table> db_finalize(&q); } style_footer(); } |