author Joshua Cranmer <>
Sun, 03 Mar 2013 16:46:26 -0600
changeset 14312 3044a67220c7cc9927cc1aed9096854495756472
parent 12671 3f9b812e72471c2172bfde0ebbeeb210bf5f1a95
child 28685 202106d62ad7246b25f9a5ad4fe4e7785cb98d1a
permissions -rw-r--r--
Followup to bug 846524 to fix --enable-extensions on comm-central, rs=Callek.

/* -*- Mode: C++; tab-width: 2; 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 */

#include "nsISupports.idl"
#include "nsIMsgComposeParams.idl"

interface nsIMsgIdentity;
interface nsIPrompt;
interface nsIAuthPrompt;
interface nsISmtpServer;
interface nsIInterfaceRequestor;
interface nsIFile;

[scriptable, uuid(da22b8ac-059d-4f82-bf99-f5f3d3c8202d)]
interface nsISmtpUrl : nsISupports {
   * SMTP Parse specific getters.
   * These retrieve various parts from the url.

   * This list is a list of all recipients to send the email to.
   * Each name is NULL terminated.
  attribute string recipients;

  attribute boolean PostMessage;

   * The message can be stored in a file, to allow accessors for getting and
   * setting the file name to post.
  attribute nsIFile postMessageFile;

  attribute boolean requestDSN;

   * The envid which is used in the DSN.
  attribute ACString dsnEnvid;

   * SMTP Url instance specific getters and setters
   * Information the protocol needs to know in order to run the url.
   * These are NOT event sinks which are things the caller needs to know.

   * By default the url is really a bring up the compose window mailto url.
   * You need to call this function if you want to force the message to be
   * posted to the mailserver.

   * The user's full name and user's email address are encapsulated in the
   * senderIdentity.
   * (the user's domain name can be glopped from the user's email address)
   * NOTE:  the SMTP username and SMTP server are in the smtp url
   * smtp://sspitzer@tintin/...
  attribute nsIMsgIdentity senderIdentity;
  attribute nsIPrompt prompt;
  attribute nsIAuthPrompt authPrompt;
  attribute nsIInterfaceRequestor notificationCallbacks;
  attribute nsISmtpServer smtpServer;

  attribute boolean verifyLogon; // we're just verifying the ability to logon

  /// Constant for the default SMTP port number
  const int32_t DEFAULT_SMTP_PORT = 25;

  /// Constant for the default SMTP over ssl port number
  const int32_t DEFAULT_SMTPS_PORT = 465;

[scriptable, uuid(87c36c23-4bc2-4992-b338-69f88f6ed0a1)]
interface nsIMailtoUrl : nsISupports {
   * mailto: parse specific getters
   * All of these fields are things we can effectively extract from a
   * mailto url if it contains all of these values
   * Note: Attachments aren't available because that would expose a potential
   * security hole (see bug 99055).
   * These items are in one function as we only ever get them from the one
   * place and all at the same time.
  void getMessageContents(out AUTF8String aToPart, out AUTF8String aCcPart,
                          out AUTF8String aBccPart, out AUTF8String aSubjectPart,
                          out AUTF8String aBodyPart, out AUTF8String aHtmlPart,
                          out ACString aReferencePart,
                          out AUTF8String aNewsgroupPart,
                          out MSG_ComposeFormat aFormat);

   * These attributes are available should mailnews or extensions want them
   * but aren't used by standard in mailnews.
  readonly attribute AUTF8String fromPart;
  readonly attribute AUTF8String followUpToPart;
  readonly attribute AUTF8String organizationPart;
  readonly attribute AUTF8String replyToPart;
  readonly attribute AUTF8String priorityPart;
  readonly attribute AUTF8String newsHostPart;