Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

message.h

Go to the documentation of this file.
00001 /*
00002  * XetPan: a libEtPan! based Mail User Agent
00003  * Copyright (C) 2002 Melvin Hadasht
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00018  */
00019 
00020 #ifndef MESSAGE_H
00021 #define MESSAGE_H
00022 
00023 #include <stdio.h> /* FILE */
00024 
00025 #include <libetpan.h>
00026 #include <carray.h>
00027 
00028 #include "folder-types.h"
00029 #include "message-types.h"
00030 
00035 struct XePMessage_s
00036 {
00037   char *data;             
00038   size_t len;             
00039   XePFolder *folder;      
00040   uint32_t muid;          
00044   int async;              
00045   mailmessage *msg;       
00046   struct mailmime *mime;  
00047   struct mailimf_fields *fields;  
00048   struct mailimf_single_fields *single_fields;  
00049   struct mailmime *selected_mime; 
00050   struct mailmime *default_mime; 
00051   uint32_t flags_set;     
00053   uint32_t flags_unset;   
00055   char *source_charset;   
00056   const char *dest_charset; 
00057   int owner;              
00060   char *filename;         
00061   int fd;                 
00062   char *msg_data;         
00063   size_t msg_size;        
00064 };
00065 
00066 
00069 XePMessage *
00070 a_Message_new(void);
00071 
00077 XePMessage *
00078 a_Message_new_from_data_noparse(char *data, size_t size);
00079 
00085 XePMessage *
00086 a_Message_new_from_file_noparse(const char *filename);
00087 
00088 XePMessage *
00089 a_Message_new_from_data(char *data, size_t len);
00090 
00091 XePMessage *
00092 a_Message_new_for_fetching(XePFolder *folder, mailmessage *msg);
00093 
00098 XePMessage *
00099 a_Message_new_to_compose(void);
00100 
00101 XePMessage *
00102 a_Message_new_to_reply(XePMessage *message);
00103 
00104 XePMessage *
00105 a_Message_new_to_forward(XePMessage *message);
00106 
00107 XePMessage *
00108 a_Message_new_to_redirect(XePMessage *message);
00109 
00110 void
00111 a_Message_free(XePMessage *message);
00112 
00113 
00114 void
00115 a_Message_free_cb(void *amessage, void *anargout);
00116 
00117 XePMessage *
00118 a_Message_clone(XePMessage *message);
00119 
00128 int
00129 a_Message_file_open(XePMessage *message);
00130 
00137 void
00138 a_Message_file_close(XePMessage *message);
00139 
00140 void
00141 a_Message_set_folder(XePMessage *message, XePFolder *folder);
00142 
00143 XePFolder *
00144 a_Message_get_folder(XePMessage *message);
00145 
00146 char *
00147 a_Message_message_formatted_get_header(mailmessage *msg, 
00148                                        XePMessageHeaderType type,
00149                                        char *other_header,
00150                                        char *template,
00151                                        char *dest_charset);
00152 
00153 const char *
00154 a_Message_header_get_name_from_type(XePMessageHeaderType type);
00155 
00156 XePMessageHeaderType 
00157 a_Message_header_get_type_from_name(const char *header_name);
00158 
00165 void
00166 a_Message_header_remove_by_name(XePMessage *message, const char *header_name);
00167 
00176 void
00177 a_Message_header_remove(XePMessage *message,
00178                         XePMessageHeaderType type,
00179                         const char *other_header);
00180 
00181 
00191 void
00192 a_Message_header_add_by_name(XePMessage *message,
00193                              const char *header_name,
00194                              const char *header_value,
00195                              const char *header_charset);
00196 
00208 void
00209 a_Message_header_add(XePMessage *message,
00210                      XePMessageHeaderType type,
00211                      const char *header_name,
00212                      const char *header_value,
00213                      const char *header_charset);
00214 
00215 int
00216 a_Message_header_set_from(XePMessage *message, 
00217                           const char *from,
00218                           const char *charset);
00219 int
00220 a_Message_header_add_to(XePMessage *message,
00221                         const char *to, 
00222                         const char *charset);
00223 
00224 int
00225 a_Message_header_add_cc(XePMessage *message, 
00226                         const char *cc,
00227                         const char *charset);
00228 
00229 int
00230 a_Message_header_add_bcc(XePMessage *message, 
00231                          const char *bcc,
00232                          const char *charset);
00233 
00234 int
00235 a_Message_header_add_reply_to(XePMessage *message,
00236                               const char *reply_to, 
00237                               const char *charset);
00238 
00239 int
00240 a_Message_header_add_other(XePMessage *message,
00241                            const char *header_name,
00242                            const char *header_value,
00243                            const char *header_charset);
00244 int
00245 a_Message_header_set_subject(XePMessage *message, 
00246                              const char *header_value, 
00247                              const char *header_charset);
00248 
00249 char *
00250 a_Message_message_formatted_get_local_date(struct mailimf_single_fields *fields,
00251                                            char *template,
00252                                            char *dest_charset);
00253 
00254 char *
00255 a_Message_message_formatted_get_orig_date(struct mailimf_single_fields *fields,
00256                                           char *template,
00257                                           char *dest_charset);
00258 char *
00259 a_Message_message_formatted_get_from(struct mailimf_single_fields *fields,
00260                                      char *template,
00261                                      char *dest_charset);
00262 char *
00263 a_Message_message_formatted_get_sender(struct mailimf_single_fields *fields,
00264                                        char *template,
00265                                        char *dest_charset);
00266 char *
00267 a_Message_message_formatted_get_reply_to(struct mailimf_single_fields *fields,
00268                                          char *template,
00269                                          char *dest_charset);
00270 char *
00271 a_Message_message_formatted_get_to(struct mailimf_single_fields *fields,
00272                                    char *template,
00273                                    char *dest_charset);
00274 char *
00275 a_Message_message_formatted_get_cc(struct mailimf_single_fields *fields,
00276                                    char *template,
00277                                    char *dest_charset);
00278 char *
00279 a_Message_message_formatted_get_bcc(struct mailimf_single_fields *fields,
00280                                     char *template,
00281                                     char *dest_charset);
00282 
00283 char *
00284 a_Message_message_formatted_get_message_id(struct mailimf_single_fields *fields,
00285                                            char *template,
00286                                            char *dest_charset);
00287 
00288 char *
00289 a_Message_message_formatted_get_in_reply_to(struct mailimf_single_fields *fields,
00290                                             char *template,
00291                                             char *dest_charset);
00292 
00293 char *
00294 a_Message_message_formatted_get_references(struct mailimf_single_fields *fields,
00295                                            char *template,
00296                                            char *dest_charset);
00297 
00298 char *
00299 a_Message_message_formatted_get_subject(struct mailimf_single_fields *fields,
00300                                         char *template,
00301                                         char *dest_charset);
00302 
00303 char *
00304 a_Message_message_formatted_get_comments(struct mailimf_single_fields *fields,
00305                                          char *template,
00306                                          char *dest_charset);
00307 
00308 char *
00309 a_Message_message_formatted_get_keywords(struct mailimf_single_fields *fields,
00310                                          char *template,
00311                                          char *dest_charset);
00312 
00313 char *
00314 a_Message_message_formatted_get_other(struct mailimf_single_fields *fields,
00315                                       char *template,
00316                                       char *other_header,
00317                                       char *dest_charset);
00318 
00319 int
00320 a_Message_message_get_subject(struct mailimf_single_fields *fields,
00321                               char *dest_charset,
00322                               char **subject);
00323 
00324 int
00325 a_Message_message_get_from(struct mailimf_single_fields *fields,
00326                            char *dest_charset,
00327                            char **display_name,
00328                            char **email_address);
00329 
00330 int
00331 a_Message_message_get_other(struct mailimf_fields *fields,
00332                             char *other_header, 
00333                             char *dest_charset,
00334                             char **other);
00335 
00336 void
00337 a_Message_decode_selected(XePMessage *message);
00338 
00339 /* Message fetching */
00340 
00341 int
00342 a_Message_get_bodystructure(XePMessage *message);
00343 
00344 int
00345 a_Message_mime_find_default(XePMessage *message);
00346 
00347 int
00348 a_Message_fetch_part(XePMessage *message);
00349 
00350 int
00351 a_Message_fetch(XePMessage *message);
00352 
00353 int
00354 a_Message_flags_change(XePMessage *message);
00355 
00356 int
00357 a_Message_array_flags_change(carray *messages);
00358 
00359 int
00360 a_Message_mime_is_text(struct mailmime *mime);
00361 
00362 char *
00363 a_Message_mime_get_type(struct mailmime_content *content);
00364 
00365 struct mailmime *
00366 a_Message_mime_new_from_file(const char *filename, 
00367                              const char *mime_type,
00368                              int mechanism);
00369 
00379 struct mailmime *
00380 a_Message_mime_new_from_data(char *data,
00381                              size_t size,
00382                              const char *mime_type,
00383                              int mechanism);
00384 
00385 void
00386 a_Message_mime_set_body_text(struct mailmime *mime, 
00387                              char *data, 
00388                              size_t size);
00389 
00390 struct mailmime *
00391 a_Message_mime_new_multipart(char *subtype, int mechanism);
00392 
00393 struct mailmime *
00394 a_Message_mime_new_message(char *subtype, int mechanism);
00395 
00396 struct mailmime *
00397 a_Message_mime_add_part_to_selected(XePMessage *message, 
00398                                     char *data,
00399                                     size_t size,
00400                                     const char *mime_type,
00401                                     int mechanism);
00402 int
00403 a_Message_mime_add_parameter(struct mailmime *mime, 
00404                              const char *param_name,
00405                              const char *param_value);
00406 
00413 int
00414 a_Message_mime_remove_parameter(struct mailmime *mime,
00415                                 const char *param_name);
00416 
00424 int
00425 a_Message_mime_add_submime(struct mailmime *mime, struct mailmime *submime);
00426 
00431 void
00432 a_Message_mime_set_description(struct mailmime *mime, char *description);
00433 
00439 int
00440 a_Message_mime_remove_selected(XePMessage *message);
00441 
00448 const char *
00449 a_Message_get_first_from_addr_spec(XePMessage *message);
00450 
00460 struct mailimf_field *
00461 a_Message_get_field(XePMessage *message,
00462                     XePMessageHeaderType type,
00463                     const char *other_header);
00464 
00465 int
00466 a_Message_data_save_as(XePMessage *message, const char *filename);
00467 
00468 void
00469 a_Message_write_to_file(XePMessage *message, FILE *file);
00470 
00471 char *
00472 a_Message_write_to_temp_file(XePMessage *message);
00473 
00482 void
00483 a_Message_append_to_folder(XePMessage *message);
00484 
00485 carray *
00486 a_Message_array_new_for_flags_change(XePFolder *folder,
00487                                      void **selection, 
00488                                      uint32_t n, 
00489                                      XePMessageFlagsOp flag_op,
00490                                      int flags);
00491 #endif

Generated on Wed Oct 22 15:50:42 2003 for XetPan by doxygen 1.3.2