Mailing lists

Take care with what you write and how you say things as messages will be sent to all of the mailing list's subscribers, potentially thousands of readers.

SYMPA

The Sympa mailing list service is open to all members of the University of Oxford who wish to use mailing lists relating to the academic, cultural and social life of the University.

Expand All

The following basic commands can be emailed to Sympa mailing lists, though please note that some of these commands may be restricted:

[listname]@sympa.ox.ac.uk

Email everyone subscribed to the mail list called [listname]

Email the manager of the list called [listname]

Subscribe the sender’s email address to the list called [listname]

Remove the sender's email address from the list called [listname]

Will respond with information about the list called [listname]

Will respond with a mailing list help file

 

Users must abide by the IT Rules when using the maillist service. In particular, the transmission of unsolicited commercial or advertising material is not permitted.

 

The Sympa mailing list manager can be accessed after providing your SSO details.

Your default email address will be used to access the mailing list manager, but an alternate address can be provided by selecting Logout to use a different address, then choosing one of the other addresses presented.

 

The administration levels for each mail mailing list are:

Subscriber

Can make allowed changes to their own subscriptions.

Moderator

Can approve messages or subscriptions requiring moderation.

Owner

Can make changes to subscribers but the mailing list's settings.

Privileged owner

Can make changes to subscribers and settings.

 

Your mailing list subscriptions are displayed in the left hand column of the mailing list manager's Home tab.  Mailing lists you are an owner of will also display an admin button that links to the mailing list's administrative functions.

Mailing lists may also be located in a different domain, to display these select the links displayed beneath the Manage subscription for other domains section.

To display your mailing lists associated with a different email address, click on Logout to use a new address from the top right hand corner then select one of the other addresses presented.

To access a mailing list's subscriber options, select the mailing list manager's Home tab, then click on the mailing list in the left hand column.

Depending on your permissions or the mailing list's configuration, the following options may be available:

Subscriber Options

Set how you would like to receive the messages.

Unsubscribe

Unsubscribe from the selected mailing list.

Info

Provides general information, such as the mailing list's name.

Admin

Functions available to the mailing list's owners.

Moderate

Functions available to the mailing list's moderators.

Archive

View the mailing list's previous messages.

Post

Post to the mailing list via the web interface.

Review Members

View the mailing list's subscribers.

 

To access the subscription management options, from the Home tab of the mailing list manager, then select Manage Your Subscriptions in the left hand column.

Options are available to either suspend the selected subscriptions or unsubscribe from them completely.

Unsubscribing from a mailing list is dependant on its configuration as some require that all members remain subscribed.  If you want to be removed from a mailing list which you can’t unsubscribe yourself from you may be able to do this by contacting one of it's owners, displayed in the mailing list's subscriber options.

 

A new mailing list can be requested from the mailing list manager's Create List tab.

The following details are requested:

Name

This will also be used as the email prefix for the mail list.

Configuration

Pre-defined list types are provided and can be changed as needed once the mailing list has been created.

Subject

A brief description of the mailing list.

Category

Clubs and Societies, Colleges, or Departments.

Description

A description that will be visible in the mailing list manager's List of Lists.

 

Requirements:

  • Any University staff member, member of Congregation, or Graduate Student may be the owner of a mailing list.  A project account, or club or society accout recognised by the proctors may also be a mailing list owner if it also has an SSO account.
  • An Undergraduate may be a co-owner of a list where the requirements are met by another owner.
  • The mailing list can cover subject matter relating to the academic, administrative, social or cultural life of the University.

 

If the requirements cannot be met, several commercial sites also offer mailing lists, for example Google Groups.

 

Privileged owners of a mailing list may request that it is renamed through the Rename or Delete Mailing List service on the Self Service catalogue.

The name and email address of the mailing list will be changed when its name is changed, but the subscribers and configuration remain the same.

 

Privileged owners of a mailing list may request its deletion through the Rename or Delete Mailing List service on the Self Service catalogue.

Mailing lists without an eligable privilaged owner will also be deleted automatically if a replacement cannot be found.

 

To recover a deleted mailing list please contact the IT Service Desk.

 

Privileged owners of a mailing list can make changes to the owners and moderators by accessing its admin facilities, selecting the List Config tab, then List Definition.

When updating owners and moderators, please note:

  • You can also only add one new owner at a time.
  • To remove an entry, delete the address from the owner or moderator sections, then select the Update button at the bottom of the screen. 
  • You can’t leave a mailing list without an owner, so a new owner will need to be added and saved before a sole owner is removed.
  • Owner's can update their own email address by overwriting the current address.
  • If changing your own status from priveleged owner to anything else, make sure to make any other changes before updating your own entry.

 

Mailing list owners can make changes to subscribers by accessing its admin facilities, then selecting the Manage Subscribers tab.

Add a user

Add a subscriber's email address.

Multiple add

Add multiple subscribers email addresses through either a large text field or uploaded text file.

Pending Subscriptions

Approve or reject the subscription requests requiring approval.

Delete selected email addresses

Remove subscribers.

 

Notifications regarding the subscription actions will be sent to the subscriber unless the quiet box is ticked.

Privileged owners can make changes to the subsciption and unsubscription options by accessing the mailing list's admin facilites, selecting the List Config tab, then Privileges.

 

Privileged owners of a mailing list can make changes to who can post to it by accessing the its admin facilities, selecting the List Config tab, the Sending/receiving setup button, then select the Who can send messages dropdown list.

There are a number of options, the main types being:

Public

Anyone may post.

Restricted to subscribers

Only subscribers may post.

Moderated

Messages must be approved before they are posted.  At least one moderator must be set in the moderators section of the List Config tab.

Self moderation

Message senders must reply to a moderation prompt before the message is posted, protecting against the sender's address being forged.

Whitelist

Restrict posts to a limited number of addresses.  Addresses are set in the mailing list's Whitelist tab, with each address provided on its own line.

 

The mailing list's Blacklist tab can also be used to prevent specified addresses from posting messages.

 

Owners of a mailing list can check why specific email addresses were added or removed by accessing the its admin facilities, selecting the Logs tab, then searching for the complete email address you are investigating.

 

Designated individuals within UAS can post to the departmental mailing lists which list the folling groups:

Departmental Administrators

Departmental Administrators and Personnel Managers

Divisional and Faculty Boards

Heads of Department, Division and Pro-Vice-Chancellors

Combined departmental list

Your local administrators can advise of who in your department can send to the lists.

If your role requires you to become a designated user, please email internalcommunications@admin.ox.ac.uk with your name, job title, department, and authorisation from your Head of Department.

 

For changes in Heads of Department, Faculty Board Chairs, Departmental Administrators and Personnel Administrators, please send the completed 'Request to update mailing lists’ form to hrisdata@admin.ox.ac.uk.

 

If you need to email Heads of House or other College Officers, please contact Tabitha Schenk (tabitha.schenk@admin.ox.ac.uk) in the Conference of Colleges Secretariat, with your name, job title, email address and the group you wish to post to.

 

Privileged owners of a mailing list can make changes to the standard message templates, such as the welcome message, by accessing the mailing list's admin facilities, then selecting the Customising tab.

Be careful to only edit the text and not the variable place holders enclosed in [%   %] as this will stop the messages from working properly.

 

Sometimes a message sent to a mailing list will generate a failure message.  Bounce messages can look complicated, but do contain the reason for the bounce, some example reasons being:

  • The mailing list allows only whitelisted addresses to post and the sender's address is not in the whitelist.
  • The mailing list allows only subscribers to post and the sender's address isn't subscibed.
  • A moderator rejects the message.
  • The message exceeds the maximum message size, often due to an attachment.
  • The message has an attachment which is of a type not allowed.
  • The mailing list address is in the BCC field, which isn't allowed.
  • The message is sent to the wrong address. 

Mailing list owners may also receive a message saying that the bounce rate among the subscribers is too high. This is usually because many subscriber addresses have either expired or contain formatting issues such as leading or trailing spaces.

The mailing list's bounce tab display's which addresses are bouncing and can reset errors for selected users.

 

Privileged owners can add another mailing list as a subscriber, so messages will also be sent to subscribers of the other mailing list.  Depending on the posting restrictions of the subscribed list, the parent list may need to be added the the subscribed list's whitelist or the messages may require moderation.

When using nested lists, from the parent mailing list's admin section, select Sending / receiving setup and ensure Require the list address to appear in the To or CC fields is set to off.

 

SYMPA AUTOMATION

The Sympa mailing list service supports a SOAP interface for programmatic interactions with mailing lists. This allows automatic membership listing, population and depopulation of mailing lists.  It also allows manipulation of the whitelist and blacklist.

Example Perl scripts are provided below.  We would welcome examples for any other languages to be sent to sysdev@it.ox.ac.uk.

Expand All

The default SOAP interface URL is https://web.maillist.ox.ac.uk/sympasoap/ox. Replace the final /ox with /admin if your list is in the maillist.admin.ox.ac.uk domain, and with /chem if in maillist.chem.ox.ac.uk.  The WSDL is available at https://web.maillist.ox.ac.uk/ox/wsdl (again, replace /ox/ with /admin/ or /chem/ as appropriate).

Credentials are available to registered IT Support Staff and must be requested by sending an email with the following information:

To: sysdev@it.ox.ac.uk
Subject: New maillist SOAP credentials request
In the message body request a set of credentials for accessing the maillist SOAP interface and state the username in the form $unitcode-$servicetype@login.maillist.ox.ac.uk, for example itserv-courses@login.maillist.ox.ac.uk or wolf-boatclub@login.maillist.ox.ac.uk.

A corresponding password will be provided after the credentials are created.  The new username can then be added as a list owner of the lists you wish to manage.  Please set it no nomail as the login.maillist.ox.ac.uk domain does not receive mail.  Also note that usernames ending in '@login.maillist.ox.ac.uk' will only appear in the list of owners if you are an owner of the list yourself.

Integrating Kerberos into Sympa would have involved making some major changes to the core Sympa codebase that are unlikely to be accepted by upstream, meaning IT Services would have to manage the changes locally.

We hope to provide a SSO-protected self-service interface for managing these credentials.

The Perl script examples assume you have the following perl modules installed:

  • SOAP::Lite (available in Debian package libsoap-lite-perl)
  • HTTP::Cookies (available in Debian package libhttp-cookies-perl)
  • YAML (available in Debian package libyaml-libyaml-perl)
  • List::Compare (available in Debian package liblist-compare-perl)

Call the scripts like: command-to-generate-addresses | script-name or, to read from a file, simply provide it as a command-line argument: script-name /path/to/file.

The scripts also assume you have a YAML configuration file similar to the following:

This example code adds new addresses provided on standard input to the list.

 

#!/usr/bin/perl
use strict;
use warnings;

use SOAP::Lite;
use HTTP::Cookies;
use YAML;

my $config_file = "config.yml";

my $config = YAML::LoadFile( $config_file )
    or die "Could not load config file\n";

# Use a specific cookie jar so logins work - logging in sets a cookie
my $cookie_jar = HTTP::Cookies->new();

# If set to false or not set will send the user a 'welcome to the list'
# message.
my $quiet = "true";

# force outgoing connections to come from a specific interface by setting local_address
my $soap = SOAP::Lite->proxy($config->{soap_url}, cookie_jar => $cookie_jar );
$soap->default_ns('urn:sympasoap');

# log in
my $som = $soap->login($config->{email}, $config->{password});
die $som->faultstring if ($som->fault);

while( my $email = <> ){
    chomp( $email );
    my $add_object = $soap->add( $config->{listname}, $email, '', $quiet );
    if( $add_object->fault ){
      die "Error adding $email to $config->{listname}: " . $add_object->faultstring;
    } else {
      print "Added $email to $config->{listname}\n";
    }
}

This example adds all addresses provided on standard input, and removes any not provided.

 

#!/usr/bin/perl
use strict;
use warnings;

use SOAP::Lite;
use HTTP::Cookies;
use YAML;
use List::Compare;

my $config_file = "config.yml";

my $config = YAML::LoadFile( $config_file )
    or die "Could not load config file\n";

# Use a specific cookie jar so logins work - logging in sets a cookie
my $cookie_jar = HTTP::Cookies->new();

# If set to false or not set will send the user a 'welcome to the list'
# message.
my $quiet = "true";
my $listname = $config->{listname};

my $soap = SOAP::Lite->proxy($config->{soap_url}, cookie_jar => $cookie_jar );
$soap->default_ns('urn:sympasoap');

my $som = $soap->login($config->{email}, $config->{password});

if ($som->fault) { die $som->faultstring }

my $subscribers = $soap->review($listname);
if( $subscribers->fault ){
    die "Error getting subscribers for $listname: "
        . $subscribers->faultstring . "\n";
}

my @current_subscribers = grep { !/^no_subscribers$/ }
    @{$subscribers->body()->{reviewResponse}->{return}};

chomp( my @wanted_subscribers = <> );

my $lc = List::Compare->new('--unsorted', \@current_subscribers, \@wanted_subscribers );
# addresses that are in the second list only
my @addresses_to_add = $lc->get_complement();
# addresses that are in the first list only
my @addresses_to_remove = $lc->get_unique();

foreach my $address ( @addresses_to_add ){
    my $add_object = $soap->add($listname, $address, '', $quiet);
    if( $add_object->fault ){
      die "Error adding $address to $listname: " . $add_object->faultstring;
    } else {
      print "Added $address to $listname\n";
    }
}

foreach my $address ( @addresses_to_remove ){
    my $rem_object = $soap->del($listname, $address, $quiet);
    if( $rem_object->fault ){
      die "Error removing $address from $listname: " . $rem_object->faultstring;
    } else {
      print "Removed $address from $listname\n";
    }
}

This example code adds the lines provided on standard in to the whitelist.

 

#!/usr/bin/perl
use strict;
use warnings;

use SOAP::Lite;
use HTTP::Cookies;
use YAML;

my $config_file = "config.yml";

my $config = YAML::LoadFile( $config_file )
    or die "Could not load config file\n";

# Use a specific cookie jar so logins work - logging in sets a cookie
my $cookie_jar = HTTP::Cookies->new();

my $listname = $config->{listname};

my $soap = SOAP::Lite->proxy($config->{soap_url}, cookie_jar => $cookie_jar );
$soap->default_ns('urn:sympasoap');

# log in
my $som = $soap->login($config->{email}, $config->{password});
if ($som->fault) { die $som->faultstring }

while( my $line = <> ){
    chomp( $line );
    my $add_object = $soap->addWhitelist( $config->{listname}, $line );
    if( $add_object->fault ){
        die "Error adding line to $config->{listname}: " . $add_object->faultstring;
    } else {
        if( $add_object->body()->{addWhitelistResponse}->{result} ){
            print "Added line '$line' to whitelist of $config->{listname}\n";
        } else {
            print "Did not add line '$line' to whitelist of $config->{listname} as it was already present\n";
        }
    }
}

This example adds all lines provided on standard input, and removes any not provided.

 

#!/usr/bin/perl
use strict;
use warnings;

use SOAP::Lite;
use HTTP::Cookies;
use YAML;
use List::Compare;

my $config_file = "config.yml";

my $config = YAML::LoadFile( $config_file )
    or die "Could not load config file\n";

# Use a specific cookie jar so logins work - logging in sets a cookie
my $cookie_jar = HTTP::Cookies->new();

my $listname = $config->{listname};

my $soap = SOAP::Lite->proxy($config->{soap_url}, cookie_jar => $cookie_jar );
$soap->default_ns('urn:sympasoap');

# log in
my $som = $soap->login($config->{email}, $config->{password});
if ($som->fault) { die $som->faultstring }

my $whitelist_object = $soap->getWhitelist($listname);
if( $whitelist_object->fault ){
    die "Error getting whitelist for $listname: "
        . $whitelist_object->faultstring . "\n";
}       

my @current_whitelist = grep { !/^no_lines$/ }
    @{$whitelist_object->body()->{getWhitelistResponse}->{return}};
    
chomp( my @wanted_whitelist = <> );

my $lc = List::Compare->new('--unsorted', \@current_whitelist, \@wanted_whitelist );
# lines in the second list only
my @lines_to_add = $lc->get_complement();
# lines in the first list only
my @lines_to_remove = $lc->get_unique();

foreach my $line ( @lines_to_add ){
    my $add_object = $soap->addWhitelist( $config->{listname}, $line );
    if( $add_object->fault ){
        die "Error adding line to $config->{listname}: " . $add_object->faultstring;
    } else {
        if( $add_object->body()->{addWhitelistResponse}->{result} ){
            print "Added line '$line' to whitelist of $config->{listname}\n";
        } else {
            print "Did not add line '$line' to whitelist of $config->{listname} as it was already present\n";
        }   
    }   
}   
foreach my $line ( @lines_to_remove ){
    my $del_object = $soap->delWhitelist( $config->{listname}, $line );
    if( $del_object->fault ){
        die "Error removing line from $config->{listname}: " . $del_object->faultstring;
    } else {
        if( $del_object->body()->{delWhitelistResponse}->{result} ){
            print "Removed line '$line' from whitelist of $config->{listname}\n";
        } else {
            print "Did not remove line '$line' from whitelist of $config->{listname} as it was already absent\n";
        }   
    }   
}

This removes all entries from the blacklist.

 

#!/usr/bin/perl
use strict;
use warnings;

use SOAP::Lite;
use HTTP::Cookies;
use YAML;

my $config_file = "config.yml";

my $config = YAML::LoadFile( $config_file )
    or die "Could not load config file\n";

# Use a specific cookie jar so logins work - logging in sets a cookie
my $cookie_jar = HTTP::Cookies->new();

my $listname = $config->{listname};

my $soap = SOAP::Lite->proxy($config->{soap_url}, cookie_jar => $cookie_jar );
$soap->default_ns('urn:sympasoap');

# log in
my $som = $soap->login($config->{email}, $config->{password});
if ($som->fault) { die $som->faultstring }

# get all the current lines
# Replace Blacklist with Whitelist to do the same for the whitelist
my $get_object = $soap->getBlacklist( $config->{listname} );
if( $get_object->fault ){
    die "Error getting blacklist for $config->{listname}: " . $get_object->faultstring;
}
foreach my $line ( @{$get_object->body()->{getBlacklistResponse}->{return}} ){
    # As with the subscribers, no_lines means that the list is empty
    next if $line eq 'no_lines';

    my $del_object = $soap->delBlacklist($config->{listname}, $line);
    if( $del_object->fault ){
        die "Could not remove line '$line' from blacklist: " . $del_object->faultstring;
    } else {
        if( $del_object->body()->{delBlacklistResponse}->{result} ){
            print "Removed line '$line' from blacklist\n";
        } else {
            # this case should never happen, but catch it anyway
            print "Got line '$line' to remove from blacklist, but could not remove it\n";
        }
    }
}

JISCMAIL

The JISCmail facility is a nationally funded service to provide mailing lists for the UK academic community.  It holds many lists covering a wide range of academic disciplines.

Expand All

JISCmail uses its own set of commands including those below, which should be sent to jiscmail@jiscmail.ac.uk with the instruction in the subject line:

help

Will respond with a help file.

get jisclist memo

See a list of all current lists

review [listname]

Find out more about a list

join [listname] firstname lastname

Add yourself to a list

leave [listname]

          Take yourself off a list

leave *

Take yourself off all lists you are subscribed to

set [listname] nomail

Stop messages sent to the list being forwarded to you

set [listname] mail

Start messages being sent to you again

query *

Find out which lists you belong to

 

Users must abide by the JISCmail service policies, including the section on posting etiquette. The transmission of unsolicited commercial or advertising material is not permitted.

 

Further information can be found on the JISCmail website.

 

Get support


Local IT support provide your first line of on-the-spot help

FIND MY LOCAL IT TEAM

 

Common requests and fault reports can be logged using self-service

   USE IT SELF-SERVICE      

   LOG A SUPPORT CALL     

VIEW MY SUPPORT CALLS  

 

The central Service Desk is available 24x7 on +44 1865 6 12345 (check central IT support arrangements over Christmas)

 

If you do not have an SSO account you can use this form to contact the Service Desk