diff options
-rw-r--r-- | pttbbs/mbbsd/mail.c | 32 | ||||
-rw-r--r-- | pttbbs/mbbsd/record.c | 7 |
2 files changed, 27 insertions, 12 deletions
diff --git a/pttbbs/mbbsd/mail.c b/pttbbs/mbbsd/mail.c index 37eb6f82..52fac976 100644 --- a/pttbbs/mbbsd/mail.c +++ b/pttbbs/mbbsd/mail.c @@ -505,7 +505,7 @@ setforward(void) { if (getdata(4, 0, "請輸入上面轉寄信箱收到的的驗證碼: ", input, sizeof(input), LCECHO) && strcmp(auth_code, input) == 0) { - outs(ANSI_COLOR(1;32) "確認驗證成功\!" ANSI_RESET "\n"); + outs(ANSI_COLOR(1;32) "確認驗證成功\" ANSI_RESET "\n"); unlink(buf); // write auth! setuserfile(buf, fn_forward); @@ -513,10 +513,11 @@ setforward(void) { if (fp) { fputs(ip, fp); fclose(fp); - vmsgf("轉寄信箱已設定為 %s", ip); + prints("轉寄信箱已設定為 %s", ip); } else { - vmsg("系統異常 - 轉寄信箱設定失敗。"); + outs(ANSI_COLOR(1;31) "系統異常 - 轉寄信箱設定失敗。" ANSI_RESET); } + pressanykey(); return FULLUPDATE; } @@ -543,11 +544,14 @@ setforward(void) { // create new one. vs_hdr("設定自動轉寄"); - outs(ANSI_COLOR(1;31) "\n\n" + outs(ANSI_COLOR(1;36) "\n\n" "由於許\多使用者有意或無意的設定錯誤間接造成自動轉寄被惡意使用,\n" - "本站基於安全性及防止廣告信的考量,\n" - "即日起自動轉寄的寄件者一律改為轉寄者的 ID。\n\n" - "不便之處請多見諒。\n" + "本站基於安全性及防止廣告信的考量,自動轉寄有以下設定:\n" + " - 寄件者一律改為設定自動轉寄者的 ID\n" + " - 要先經過 Email 認證\n" + " - 不能設定為同站的其它使用者\n" + "\n" + "不便之處請多見諒\n" ANSI_RESET "\n"); setuserfile(buf, fn_forward); @@ -570,7 +574,6 @@ setforward(void) { if (*ip) { if (strcasestr(ip, str_mail_address) || strchr(ip, '@') == NULL) { - unlink(buf); vmsg("禁止自動轉寄給站內其它使用者"); return FULLUPDATE; } @@ -580,10 +583,14 @@ setforward(void) { return FULLUPDATE; } - getdata(b_lines, 0, "確定開啟自動轉信?(Y/n)", yn, sizeof(yn), - LCECHO); - if (*yn != 'n') { + getdata(b_lines, 0, + "確定要使用自動轉信? " + "(y)開始驗證 (n)停用 [Q]不修改設定 [y/n/Q]: ", + yn, sizeof(yn), LCECHO); + if (*yn == 'y') { char authtemp[PATHLEN]; + setuserfile(buf, fn_forward); + unlink(buf); setuserfile(buf, fn_forward_auth_dir); Mkdir(buf); setuserfile(buf, fn_forward_auth); @@ -624,6 +631,9 @@ setforward(void) { "請在收到該信件後再次進入設定轉寄信箱並輸入驗證碼。\n", buf); pressanykey(); return FULLUPDATE; + } else if (*yn != 'n') { + vmsg("設定未變更!"); + return FULLUPDATE; } } unlink(buf); diff --git a/pttbbs/mbbsd/record.c b/pttbbs/mbbsd/record.c index b69afb8f..cf90c899 100644 --- a/pttbbs/mbbsd/record.c +++ b/pttbbs/mbbsd/record.c @@ -527,7 +527,9 @@ append_record_forward(char *fpath, fileheader_t * record, int size, const char * #ifdef UNTRUSTED_FORWARD_TIMEBOMB if (dasht(buf) < UNTRUSTED_FORWARD_TIMEBOMB) { - unlink(buf); + // We may unlink here, but for systems with timebomb, + // just leave it alone and let user see it in login screen. + // unlink(buf); return 0; } #endif @@ -550,6 +552,8 @@ append_record_forward(char *fpath, fileheader_t * record, int size, const char * if (!*address || strchr(address, '@') == NULL || strcasestr(address, str_mail_address)) { +#ifndef UNTRUSTED_FORWARD_TIMEBOMB + // delete the setting if we don't have timebombs. unlink(buf); #ifdef USE_LOG_INTERNETMAIL log_filef("log/internet_mail.log", LOG_CREAT, @@ -557,6 +561,7 @@ append_record_forward(char *fpath, fileheader_t * record, int size, const char * Cdatelite(&now), __FUNCTION__, address, origid); #endif +#endif return 0; } |