+
+enum {
+ POST_LOGGED_IN,
+ POST_EXTERNAL,
+ CHECK_EXISTANCE,
+ POST_LMTP
+};
+int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf,
+ size_t n,
+ const char* RemoteIdentifier,
+ int PostPublic);
+
+
+/* values for which_set */
+enum {
+ ctdlsetseen_seen,
+ ctdlsetseen_answered
+};
+void CtdlSetSeen(long *target_msgnums, int num_target_msgnums,
+ int target_setting, int which_set,
+ struct ctdluser *which_user, struct ctdlroom *which_room);
+void CtdlGetSeen(char *buf, int which_set);
+
+struct recptypes *validate_recipients(char *recipients,
+ const char *RemoteIdentifier,
+ int Flags);
+
+void free_recipients(struct recptypes *);
+
+struct CtdlMessage *CtdlMakeMessage(
+ struct ctdluser *author, /* author's user structure */
+ char *recipient, /* NULL if it's not mail */
+ char *recp_cc, /* NULL if it's not mail */
+ char *room, /* room where it's going */
+ int type, /* see MES_ types in header file */
+ int format_type, /* variformat, plain text, MIME... */
+ char *fake_name, /* who we're masquerading as */
+ char *my_email, /* which of my email addresses to use (empty is ok) */
+ char *subject, /* Subject (optional) */
+ char *supplied_euid, /* ...or NULL if this is irrelevant */
+ char *preformatted_text /* ...or NULL to read text from client */
+);
+int CtdlCheckInternetMailPermission(struct ctdluser *who);
+int CtdlIsMe(char *addr, int addr_buf_len);
+
+#endif /* MSGBASE_H */