32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
** This page can be used to read content from the EMAILBOX table
** that contains email received by the "fossil smtpd" command.
*/
void webmail_page(void){
int emailid;
Stmt q;
Blob sql;
login_check_credentials();
if( g.zLogin==0 ){
login_needed(0);
return;
}
if( !db_table_exists("repository","emailbox") ){
style_header("Webmail Not Available");
|
>
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
** This page can be used to read content from the EMAILBOX table
** that contains email received by the "fossil smtpd" command.
*/
void webmail_page(void){
int emailid;
Stmt q;
Blob sql;
int showAll = 0;
login_check_credentials();
if( g.zLogin==0 ){
login_needed(0);
return;
}
if( !db_table_exists("repository","emailbox") ){
style_header("Webmail Not Available");
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
return;
}
db_finalize(&q);
}
style_header("Webmail");
blob_init(&sql, 0, 0);
blob_append_sql(&sql,
/* 0 1 2 3 4 */
"SELECT efrom, datetime(edate,'unixepoch'), estate, esubject, emsgid"
" FROM emailbox"
);
if( !g.perm.Admin || P("all")==0 ){
blob_append_sql(&sql, " WHERE euser=%Q", g.zLogin);
}
blob_append_sql(&sql, " ORDER BY edate DESC limit 50");
db_prepare_blob(&q, &sql);
blob_reset(&sql);
@ <ol>
while( db_step(&q)==SQLITE_ROW ){
int emailid = db_column_int(&q,4);
const char *zFrom = db_column_text(&q, 0);
const char *zDate = db_column_text(&q, 1);
const char *zSubject = db_column_text(&q, 3);
@ <li>
@ <a href="%R/webmail?id=%d(emailid)">%h(zFrom) → %h(zSubject)</a>
@ %h(zDate)
}
db_finalize(&q);
@ </ol>
style_footer();
}
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
return;
}
db_finalize(&q);
}
style_header("Webmail");
blob_init(&sql, 0, 0);
blob_append_sql(&sql,
/* 0 1 2 3 4 5 */
"SELECT efrom, datetime(edate,'unixepoch'), estate, esubject, emsgid, euser"
" FROM emailbox"
);
if( g.perm.Admin ){
const char *zUser = P("user");
if( P("all")!=0 ){
/* Show all email messages */
showAll = 1;
}else{
style_submenu_element("All", "%R/webmail?all");
if( zUser ){
blob_append_sql(&sql, " WHERE euser=%Q", zUser);
}else{
blob_append_sql(&sql, " WHERE euser=%Q", g.zLogin);
}
}
}else{
blob_append_sql(&sql, " WHERE euser=%Q", g.zLogin);
}
blob_append_sql(&sql, " ORDER BY edate DESC limit 50");
db_prepare_blob(&q, &sql);
blob_reset(&sql);
@ <ol>
while( db_step(&q)==SQLITE_ROW ){
int emailid = db_column_int(&q,4);
const char *zFrom = db_column_text(&q, 0);
const char *zDate = db_column_text(&q, 1);
const char *zSubject = db_column_text(&q, 3);
@ <li>
if( showAll ){
const char *zTo = db_column_text(&q,5);
@ <a href="%R/webmail?user=%t(zTo)">%h(zTo)</a>:
}
@ <a href="%R/webmail?id=%d(emailid)">%h(zFrom) → %h(zSubject)</a>
@ %h(zDate)
}
db_finalize(&q);
@ </ol>
style_footer();
}
|