Diff for /parser3/src/classes/mail.C between versions 1.104 and 1.112

version 1.104, 2004/05/11 15:03:49 version 1.112, 2009/07/06 12:13:30
Line 1 Line 1
 /** @file  /** @file
         Parser: @b mail parser class.          Parser: @b mail parser class.
   
         Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
 */  */
   
Line 21  static const char * const IDENT_MAIL_C=" Line 21  static const char * const IDENT_MAIL_C="
   
 #include "smtp.h"  #include "smtp.h"
   
   // debug switches
   
   //#define DEBUG_JUST_SEE_MESSAGE
   
 // defines  // defines
   
 #define MAIL_CLASS_NAME "mail"  #define MAIL_CLASS_NAME "mail"
Line 69  static void sendmail( Line 73  static void sendmail(
                          options                           options
 #endif  #endif
                          ) {                           ) {
         const char* message_cstr=message.cstr(String::L_UNSPECIFIED);          const char* message_cstr=message.untaint_cstr(String::L_AS_IS);
   
         const char* exception_type="email.format";          const char* exception_type="email.format";
         if(!from) // we use in sendmail -f {from} && SMTP MAIL from: {from}          if(!from) // we use in sendmail -f {from} && SMTP MAIL from: {from}
Line 94  static void sendmail( Line 98  static void sendmail(
   
 #if WIN32  #if WIN32
         // win32 without SMTP server configured          // win32 without SMTP server configured
         throw Exception("parser.runtime",          throw Exception(PARSER_RUNTIME,
                 0,                  0,
                 "$"MAIN_CLASS_NAME":"MAIL_NAME".SMTP not defined");                  "$"MAIN_CLASS_NAME":"MAIL_NAME".SMTP not defined");
 #else  #else
Line 105  static void sendmail( Line 109  static void sendmail(
         String* sendmail_command=new String;          String* sendmail_command=new String;
         if(vmail_conf) {          if(vmail_conf) {
 #ifdef PA_FORCED_SENDMAIL  #ifdef PA_FORCED_SENDMAIL
                 throw Exception("parser.runtime",                  throw Exception(PARSER_RUNTIME,
                         0,                          0,
                         "Parser was configured with --with-sendmail="PA_FORCED_SENDMAIL                          "Parser was configured with --with-sendmail="PA_FORCED_SENDMAIL
                         " key, to change sendmail you should reconfigure and recompie it");                          " key, to change sendmail you should reconfigure and recompie it");
Line 113  static void sendmail( Line 117  static void sendmail(
                 if(Value* sendmail_value=vmail_conf->get_hash()->get(mail_sendmail_name))                  if(Value* sendmail_value=vmail_conf->get_hash()->get(mail_sendmail_name))
                         *sendmail_command<<sendmail_value->as_string();                          *sendmail_command<<sendmail_value->as_string();
                 else                  else
                         throw Exception("parser.runtime",                          throw Exception(PARSER_RUNTIME,
                                 0,                                  0,
                                 "$"MAIN_CLASS_NAME":"MAIL_NAME"."SENDMAIL_NAME" not defined");                                  "$"MAIN_CLASS_NAME":"MAIL_NAME"."SENDMAIL_NAME" not defined");
 #endif  #endif
Line 192  static void _send(Request& r, MethodPara Line 196  static void _send(Request& r, MethodPara
         Value& vhash=params.as_no_junction(0, "message must not be code");          Value& vhash=params.as_no_junction(0, "message must not be code");
         HashStringValue* hash=vhash.get_hash();          HashStringValue* hash=vhash.get_hash();
         if(!hash)          if(!hash)
                 throw Exception("parser.runtime",                  throw Exception(PARSER_RUNTIME,
                         0,                          0,
                         "message must be hash");                          "message must be hash");
   
Line 214  static void _send(Request& r, MethodPara Line 218  static void _send(Request& r, MethodPara
                 GET_SELF(r, VMail).message_hash_to_string(r, hash, 0, from,                   GET_SELF(r, VMail).message_hash_to_string(r, hash, 0, from, 
                         smtp_server_port?true:false /*send by SMTP=strip to?*/, to);                          smtp_server_port?true:false /*send by SMTP=strip to?*/, to);
   
         //r.write_pass_lang(message);  #ifdef DEBUG_JUST_SEE_MESSAGE
           r.write_pass_lang(message);
   #else
         sendmail(vmail_conf, smtp_server_port,           sendmail(vmail_conf, smtp_server_port, 
                 message, from, to, soptions);                  message, from, to, soptions);
   #endif
 }  }
   
 // constructor & configurator  // constructor & configurator
Line 234  void MMail::configure_user(Request& r) { Line 241  void MMail::configure_user(Request& r) {
                         r.classes_conf.put(name(), mail_element);                          r.classes_conf.put(name(), mail_element);
                 else                  else
                         if( !mail_element->is_string() )                          if( !mail_element->is_string() )
                                 throw Exception("parser.runtime",                                  throw Exception(PARSER_RUNTIME,
                                         0,                                          0,
                                         "$" MAIL_CLASS_NAME ":" MAIL_NAME " is not hash");                                          "$" MAIL_CLASS_NAME ":" MAIL_NAME " is not hash");
 }  }

Removed from v.1.104  
changed lines
  Added in v.1.112


E-mail: