DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (9bb7406580cd)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"
#include "nsIFile.idl"

/**
 * This interface contains all the personal outgoing mail information
 * for a given person.
 * Each identity is identified by a key, which is the <id> string in
 * the identity preferences, such as in mail.identity.<id>.replyTo.
 */
[scriptable, uuid(9dede9a0-f6fc-4afc-8fc9-a6af52414b3d)]
interface nsIMsgIdentity : nsISupports {
  /**
   * Internal preferences ID.
   */
  attribute ACString key;

  /**
   * Label describing this identity. May be empty.
   */
  attribute AString label;

  /**
   * Pretty display name to identify this specific identity. Will return a
   * composed string like "fullname <email> (label)".
   */
  readonly attribute AString identityName;

  /**
   * User's full name, i.e. John Doe.
   */
  attribute AString fullName;

  /**
   * User's e-mail address, i.e. john@doe.com.
   */
  attribute ACString email;

  /**
   * Formats fullName and email into the proper string to use as sender:
   * name <email>
   */
  readonly attribute AString fullAddress;

  /**
   * Optional replyTo address, i.e. johnNOSPAM@doe.com.
   */
  attribute AUTF8String replyTo;

  /**
   * Optional organization.
   */
  attribute AString organization;

  /**
   * Should we compose with HTML by default?
   */
  attribute boolean composeHtml;

  /**
   * Should we attach a signature from file?
   */
  attribute boolean attachSignature;

  /**
   * Should we attach a vcard by default?
   */
  attribute boolean attachVCard;

  /**
   * Should we automatically quote the original message?
   */
  attribute boolean autoQuote;

  /**
   * What should our quoting preference be?
   */
  attribute long replyOnTop;

  /**
   * Should our signature be at the end of the quoted text when replying
   * above it?
   */
  attribute boolean sigBottom;

  /**
   * Include a signature when forwarding a message?
   */
  attribute boolean sigOnForward;

  /**
   * Include a signature when replying to a message?
   */
  attribute boolean sigOnReply;

  /**
   * The current signature file.
   */
  attribute nsIFile signature;

  /**
   * Modification time of the signature file.
   */
  attribute long signatureDate;

  /**
   * Signature text if not read from file; format depends on htmlSigFormat.
   */
  attribute AString htmlSigText;

  /**
   * Does htmlSigText contain HTML? Use plain text if false.
   */
  attribute boolean htmlSigFormat;

  /**
   * Suppress the double-dash signature separator
   */
  attribute boolean suppressSigSep;

  /**
   * The encoded string representing the vcard.
   */
  attribute ACString escapedVCard;

  attribute boolean doFcc;
  /// URI for the fcc (Sent) folder
  attribute ACString fccFolder;
  attribute boolean fccReplyFollowsParent;

  /**
   * @{
   * these attributes control whether the special folder pickers for
   * fcc, drafts,archives, and templates are set to pick between servers
   * (e.g., Sent on accountName) or to pick any folder on any account.
   * "0" means choose between servers; "1" means use the full folder picker.
   */
  attribute ACString fccFolderPickerMode;
  attribute ACString draftsFolderPickerMode;
  attribute ACString archivesFolderPickerMode;
  attribute ACString tmplFolderPickerMode;
  /** @} */

  // Don't call bccSelf, bccOthers, and bccList directly, they are
  // only used for migration and backward compatibility. Use doBcc
  // and doBccList instead.
  attribute boolean bccSelf;
  attribute boolean bccOthers;
  attribute ACString bccList;

  attribute boolean doCc;
  attribute AUTF8String doCcList;

  attribute boolean doBcc;
  attribute AUTF8String doBccList;
  /**
   * @{
   * URIs for the special folders (drafts, templates, archive)
   */
  attribute ACString draftFolder;
  attribute ACString archiveFolder;
  attribute ACString stationeryFolder;
  /** @} */

  attribute boolean archiveEnabled;
  /**
   * @{
   * This attribute and constants control the granularity of sub-folders of the
   * Archives folder - either messages go in the single archive folder, or a
   * yearly archive folder, or in a monthly archive folder with a yearly
   * parent folder. If the server doesn't support folders that both contain
   * messages and have sub-folders, we will ignore this setting.
   */
  attribute long archiveGranularity;
  const long singleArchiveFolder = 0;
  const long perYearArchiveFolders = 1;
  const long perMonthArchiveFolders = 2;
  /// Maintain the source folder name when creating Archive subfolders
  attribute boolean archiveKeepFolderStructure;
  /** @} */

  attribute boolean showSaveMsgDlg;
  attribute ACString directoryServer;
  attribute boolean overrideGlobalPref;
  /**
   * If this is false, don't append the user's domain
   * to an autocomplete address with no matches
   */
   attribute boolean autocompleteToMyDomain;
  /**
   * valid determines if the UI should use this identity
   * and the wizard uses this to determine whether or not
   * to ask the user to complete all the fields
   */
  attribute boolean valid;

  /**
   * this is really dangerous. this destroys all pref values
   * do not call this unless you know what you're doing!
   */
  void clearAllValues();

  /**
   * the preferred smtp server for this identity.
   * if this is set, this the smtp server that should be used
   * for the message send
   */
  attribute ACString smtpServerKey;

  /**
   * default request for return receipt option for this identity
   * if this is set, the Return Receipt menu item on the compose
   * window will be checked
   */
  readonly attribute boolean requestReturnReceipt;
  readonly attribute long receiptHeaderType;

  /**
   * default request for DSN option for this identity
   * if this is set, the DSN menu item on the compose
   * window will be checked
   */
  readonly attribute boolean requestDSN;

  /* copy the attributes of the identity we pass in */
  void copy(in nsIMsgIdentity identity);

  /**
   * these generic getter / setters, useful for extending mailnews
   * note, these attributes persist across sessions
   */
  AString getUnicharAttribute(in string name);
  void setUnicharAttribute(in string name, in AString value);

  ACString getCharAttribute(in string name);
  void setCharAttribute(in string name, in ACString value);

  boolean getBoolAttribute(in string name);
  void setBoolAttribute(in string name, in boolean value);

  long getIntAttribute(in string name);
  void setIntAttribute(in string name, in long value);

  /* useful for debugging */
  AString toString();
};