Login   Register  
PHP Classes
elePHPant
Icontem

File: README

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of giuseppe lucarelli  >  pop3ml  >  README  >  Download  
File: README
Role: Documentation
Content type: text/plain
Description: very simple readme file
Class: pop3ml
Manage mailing lists using a POP3 account
Author: By
Last change: made some text changes
Date: 4 years ago
Size: 7,572 bytes
 

Contents

Class file image Download
Pop3ml
Php Mailinglist/Newsletter manager
==========================================

Version 0.2.beta (April 09 2010)

This is a php script class to manage Mailing lists without a local smtp server.
You need only a simple pop3 mail account.
It works with php5 and mysql => 4. It's highly configurable by users.
You can subscribe/unsubscribe simply with mail messages. There is optional subscription/unsubscription confirmation,
subscription moderation, message moderation, digest message mode, parent/children list management, mail scheduling to
postpone a message, mail filter (procmail-like syntax), message queue for unsent emails, message size check,
command to retrieve messages, bounce detection, message header management, black/white list, multi rcpt-to smtp command
and others functions.
There is also a program to test list settings without sending any message.
You can configure it with programs like phpMyAdmin or, if you prefer with 'goshweb',
another php program developed by myself.


Installation:

please refer to INSTALL file.



ADMINISTRIVIA:
-------------------

MAILING LIST SUBSCRIPTION:
send a message to ML address, without subject and with body text:

subscribe

If ML is configured with subscribe confirmation, you will receive an email message to validate your
request. Reply to continue subscription.
If you want to subscribe with digest mode:

subscribe.digest

you can change 'subscribe' word with any other word or, if you want a more complex detection, you can use a regexp
expression, for example changing the value of '[[:SUBSCRIBE=subscribe:]]' message of 'language' field ('mltable' record)
to:
[[:SUBSCRIBE=(\s+|)(i|)(\s+|)subscribe:]]
in this way you can do a subscribe request with both "subscribe" and "i subscribe" body text


MAILING LIST UNSUBSCRIPTION:
send a message to ML address, without subject and with body text:

unsubscribe

If ML is configured with unsubscribe confirmation, you will receive an email message to validate your
request. Reply to continue unsubscription.
If you want to unsubscribe from digest mode:

unsubscribe.digest


CHANGING SUBSCRIPTION MODE:
send a message to ML address, without subject and with body text:

toggle

If ML is configured with subscribe confirmation, you will receive an email message to validate your
request. Reply to confirm your request.


CHANGING/SETTING SUBSCRIBER PASSWORD FOR WEB ACCESS TO MESSAGES ARCHIVE:
send a message to ML address, without subject and with body text:

password NewPassword OldPassword

where 'password' is the request command, 'NewPassword' is the new value, and 'OldPassword' is the initial value set
at subscription time, space separed.
Please don't use 'space', 'carriage return','tab','line feed' or other special characters for password value.


MAILING LIST MESSAGE MODERATION:
if moderator(s) reply to e-mail messages received from ML, they will be delivered to all subscribers,
otherwise they will be removed later (depending on field defined at the beginning of the class 'EXPIRE_MSG_MOD')


RETRIEVE MESSAGES FROM ML:
send a message to ML address, without subject and body text:

get [message(s) number(s)]

for example:

get 1		to retrieve message number 1
get 1,2,3	to retrieve messages 1,2 and 3
get 1,2,5-10,11	to retrieve messages 1,2, from 5 to 10 and 11


GET HELP MESSAGE FROM ML:
send a message to ML address, without subject and body text:

help


SEND AN EMAIL MESSAGE TO ML OWNER:
send a message to ML address, without subject and body text:

notify owner


RETRIEVE LIST SCHEDULED MESSAGES
send a message to ML address, without subject and body text:

scheduled list


REMOVE A SCHEDULED MESSAGS
send a message to ML address, without subject and body text:

drop scheduled [messageid]

for example:

drop scheduled 102

--------------------------

Parent/Children management:

this script can manage parent/children ML recursively. You can have, for example, some list with subscribers,
and one or more ML child list. if you add a ML list name (child ML) to another ML (parent ML) subscribers list,
all posted messages to parent ML will be delivered to all children subscribers email addresses (eventually child ML).

you can have, for example, some ML:

listname   listaddress              subscribers list             denysublist      allowsublist    parentlist
--------   -----------              ----------------             -----------      ------------    ----------
sample1    sample1@domain.com       sample1user1@gmail.com                                        mainlist,sample4
                                    sample1user2@yahoo.com
		
sample2    sample2@otherdomain.com  sample2user1@mailserver.com                                   mainlist
                                    sample2user2@gmail.com
                                    sample2user3@yahoo.com
                                    sample3
		
		
sample3    sample3@bsmc.it          sample3user1@mailserver.com                                   mainlist
		
and a parent list:
		
mainlist   mainlist@mail.com        mainlistuser1@gmail.com       
                                    mainlistuser2@yahoo.com       *@buyit.com     .*@somedom.org
                                    sample1				
                                    sample2			

if you send a message to 'mainlist', it will be delivered to:

mainlistuser1@gmail.com	
mainlistuser2@yahho.com
sample1user1@gmail.com
sample1user2@yahoo.com
sample2user1@mailserver.com
sample2user2@gmakl.com
sample2user3@yahoo.com
sample3user1@mailserver.com         (because 'sample3' list is set as 'sample2' child)

all users can post to other lists and parent too, due to 'parentlist' setting


BOUNCE EMAIL
------------

the script checks if received emails are bounced messages from smtp servers, to avoid an infinite loop from sender
and ML manager. it also notify all bounced emails to ML owner and remove associated queued messages.
anyway if you put an email header value into 'headerchange' field (ie. 'Return-Path: listowner@someserver.com' or
'Return-Path:') when an email fails to reach the destination address it will be bounced to this address, not to ML.
for more security i have added the chance to use another php script class, 'BounceHandler', more complex then mine.
if you have almost one public list (post allowed for everyone) it's better to use it, just pay attention to memory usage.
download it from phpclasses repository (http://www.phpclasses.org/browse/file/11665.html) and put it into your pop3ml
installation folder.
if there is some kind of unrecognized bounced email you can add some procmail-like recipes to 'mailfilter' field
(refer to INSTALL file).


SCHEDULED EMAIL
---------------

if you want to use extra header for mail scheduling, with mozilla thunderbird use following instructions:

# Select Edit | Preferences or Thunderbird | Preferences... from the menu in Mozilla Thunderbird.
# Open the Advanced category.
# Go to the General tab.
# Click Config Editor....
# Enter "mail.compose.other.header" (not including the quotation marks) under Filter:.
# Double-click mail.compose.other.header.
# Enter the desired custom headers in the Enter string value dialog. (ie. "X-Scheduled")
# restart thunderbird



CHANGELOG

See ChangeLog.txt

Download: http://www.bsmc.it/ftp/programs/php/pop3ml-0.1.beta.tgz

Giuseppe Lucarelli
giu.lucarelli@gmail.com


Enjoy!