Hi everyone Does anyone know where i can pick up a 'tellafriend' perl script. I mean a simple script that visitors to a site can use to email their friends about the web site. Of course the script will reside on the web site there are visiting.
Thanks John > from: WaveWeb <[EMAIL PROTECTED]> > date: Tue, 18 Jun 2002 04:55:51 > to: [EMAIL PROTECTED] > cc: [EMAIL PROTECTED] > subject: Re: [cobalt-developers] Keep local e-mail copy > > Hello Perl cracks > > I had several customers who asked me how to have their mail forwarded and still be >able to read their messages in their web mailer. So, each time, me root go in >/etc/mail/aliases, me find line with alias address, me add ',username' and run >'newaliases' and 'meta-verify -ua' ... So I investigated in the possibility to change >the 'Email Settings' page in the GUI that would do this upon users request. > > It would be convenient to have a checkbox in the GUI that would let the system keep >a local copy of the forwarded e-mail message. With [_] as a checkbox, the form would >look more or less like this : > > -------------------------------------------------------- > | Email Settings - UserName | > |- - -------------------- -------------------------------| > |?| | Forward Email To | [ [EMAIL PROTECTED] ] | > | | | | _ | > | | | Keep Local Copy | [_] | > |- - -------------------- -------------------------------| > |?| | | [ ] | > > > Checking the [_] box (I suggest to keep it off per default) would add the user name >after a comma to the mail alias list in /etc/mail/aliases. > > Remember the "POP Before SMTP Relaying" checkbox that Cobalt added through a package >one or two years ago (now it's included in the OS)? If Cobalt would have idle >resources (!), it would be a cute enhancement, wouldn't it? Or maybe I can motivate >someone to help me on this? > > Thank you and best regards > > Meaulnes Legler > ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ > ~ http://www.WaveWeb.ch ~ > ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ > ~ Z�rich, Switzerland ~ > ~ tel: 41 1 260-1660 ~ > ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ > > > ------------------------------------------------------------------------ > > I tried to look at the changes that have to be done, but I'm not so sure if I didn't >miss something (besides the fact that the scripting surpasses my Perl knowledge...). >I guess the files that need to be changed are: > > - the siteadmin script /usr/admserv/cgi-bin/.cobalt/siteUserMail/siteUserMail.cgi > - the user script /usr/admserv/cgi-bin/.cobalt/siteUserMail/email.cgi > - the siteadmin HTML template /usr/admserv/templates/siteUserEmail.tmpl > - the user HTML template /usr/admserv/templates/email.tmpl > - the language file /etc/cobalt/messages/ui.po or /etc/cobalt/messages/en_US/ui.po >(yes, well, which one?) > > and some "interactive variables" to be created. > > This is how far I came. > > Similar to the following "interactive variables" (in the language file, the >templates and in the scripts): > msgid "forwardTo" > msgstr "Forward Email To" > [str.forwardTo] > NAME="forwardaddr" > [FORWARDADDR] > the equivalents would be created (suggestions): > msgid "forwardKeepCopy" > msgstr "Keep Local Copy" > [str.forwardKeepCopy] > NAME="forwardcopy" > [FORWARDCOPY] > > In the HTML templates siteUserEmail.tmpl an email.tml in /usr/admserv/templates/, an >additional line in each table cell with the text and the checkbox (after a <BR>) > > <TR> > <TD WIDTH="26"> > <P ALIGN="CENTER"><A HREF="javascript: top.showInfo( >forwardHelp );" onMouseOver="status='[str.help]'; top.showInfo( forwardHelp ); return >true;"><IMG SRC="/.cobalt/images/smallest_help_but" ALIGN="BOTTOM" BORDER="0"></A> > </TD> > <TD><FONT COLOR=#FFFFFF>�</FONT></TD> > <TD WIDTH="189"><FONT >COLOR=#FFFFFF>�</FONT>[str.forwardTo]<BR>�[str.forwardKeepCopy]</TD> > <TD WIDTH="385"><INPUT TYPE="TEXT" NAME="forwardaddr" SIZE="32" >VALUE="[FORWARDADDR]"><BR><INPUT TYPE="CHECKBOX" NAME="forwardCopy" VALUE="off" >[FORWARDCOPY]></TD> > </TR> > > > For the scripts in /usr/admserv/cgi-bin/.cobalt/, I must pass :-(. I just guess the >changes to add the ",$username" in the alias list must be done in the two following >subroutines (extract from siteUserMail/siteUserMail.cgi): > > - in the event handler for the e-mail page subroutine > > sub handleSiteUserEmailPage { > ... > > if ($err) { > $info.=MSG_get_ui("emailAliasNotValid"); > $info.=join(', ', @badalii); > } > if( $forwardAddr && !netutil_test_emailaddr( $forwardAddr ) ) { > $info.=eval("\"".Locale::gettext::dgettext("ui", >"forwardAddrNotValid")."\""); > $err=1; > } > if (! $err) { > # everything is fine > > # set forward to > if( $forwardAddr ) { > # build list > # $forwardAddr could actually be a comma separated list of aliases > $ret = alias_set( $userName, $forwardAddr ); > $userObj->put('forward', $forwardAddr); > } else { > # delete list > $ret='2'; > if( alias_exist( $userName ) ) { $ret=alias_delete( $userName ); } > $userObj->put('forward', ''); > } > if( $ret!~/^2/o ) { > $info.=substr( $ret, 4 ).'<BR>'; > $err=1; > } > > # set mail aliases > my $a = join(' ', @resultAliases); > $userObj->put("aliases" => $a); > > foreach $_ (@resultAliases) { > push @alii, (/\@/) ? "$_" : "$_\@$fqdn"; > } > # add an alias to self > push @alii, "$userName\@$fqdn"; > > $ret=mail_virtuser_set_byuser( $userName, @alii ); > if( $ret!~/^2/o ) { > $info.=substr( $ret, 4 ).'<BR>'; > $err=1; > } > > ... > } > > - and in the page generation subroutine > > sub genSiteUserEmailPage { > my ( $info )=@_; > > my $siteObj = Cobalt::Meta->create("type" => "vsite"); > $siteObj->retrieve($group); > my $fqdn = $siteObj->get("fqdn"); > > my $userName = $q->param('name'); > my $userObj = Cobalt::Meta->create("type" => "users"); > $userObj->retrieve($userName); > my $fullName = $userObj->get("fullname"); > > my ($forwardMode, $forwardAddr, @forwardList); > @forwardList = Cobalt::List::alias_get_vacationless( $userName ); > if ($forwardList[0] =~ /^[134]\S*\s/) { > # substr( $forwardList[0], 5 ).'<BR>'; > @forwardList = (); > } > if (@forwardList) { > $forwardMode = 'CHECKED'; > $forwardAddr=join ',', @forwardList; > } else { > $forwardMode = ''; > } > > my $aliases = $userObj->get("aliases"); > $aliases =~ s/\s /\n/g; > my $vacationMode=($userObj->get("vacation") eq 'on' ) ?'CHECKED':''; > my $vacationMsg=Cobalt::Vacation::vacation_get_message($userName); > > print "content-type: text/html\nCache-Control: no-cache\n\n"; > > # Read in the template > open( TEMPLATE, "$Template_dir/siteUserEmail.tmpl" ) > || die "Cannot read $Template_dir/siteUserEmail.tmpl: $!\n"; > > while( <TEMPLATE> ) { > s/\[ALIASES\]/$aliases/o; > s/\[FORWARDADDR\]/$forwardAddr/o; > s/\[FULLNAME\]/$fullName/o; > s/\[GROUP\]/$group/o; > s/\[SITEUSEREMAILSCRIPTURL\]/$siteUserEmailScriptURL/o; > s/\[SITEUSERLISTSCRIPTURL\]/$siteUserListScriptURL/o; > s/\[USER_INFO\]/$info/o; > s/\[USERNAME\]/$userName/o; > s/\[VACATIONMODE\]/$vacationMode/o; > s/\[VACATIONMESSAGE\]/$vacationMsg/o; > > s/\[str.([^\]] )\]/Locale::gettext::dgettext("ui", "$1")/geo; > > print; > } > close TEMPLATE; > } > > I guess the change in email.cgi won't be very different. > > ------------------------------------------------------------------------ > > As I said, I would spend just too much time hacking around and eventually mess up >something else... So any help would be very appreciated. > > Thank you and best regards. > > > _______________________________________________ > cobalt-developers mailing list > [EMAIL PROTECTED] > http://list.cobalt.com/mailman/listinfo/cobalt-developers _______________________________________________ cobalt-developers mailing list [EMAIL PROTECTED] http://list.cobalt.com/mailman/listinfo/cobalt-developers
