This FAQ is targeted on helping solve errors frequently found with Mojo Mail. Please make sure you've read both the installation and The Config.pm tour. Many things are explained in those pages. If this page does not answer your question, please feel free to post your questoin to the Mojo Mail Boards
That's not much to go on, Why isn't it working? If you don't have a clue, find out as much about the server its software that you can and read on, brave soul!
Check to see that you:
I'm getting a Software Error that says:
can't open /usr/home/path/to/your/mojo_lists to read: No such file or directory at /MOJO/GUTS.pm
Did you change the first 4 variables in the Config.pm file? What's happening is that its looking for a directory on the server that doesn't exists.
I'm getting a sofware error that says:
can't open /usr/home/myaccout/lists to read: Permission denied at /MOJO/GUTS.pm
The directory that you specified in the Config.pm as the place to put your lists (the $FILES variable) exists, but isn't something Mojo Mail can read and possibly write into. You'll need to change the permissions of this directoy. Usually, people on a regular hosting account will have to chmod the $FILES directory to 777.
Just to reiterate, this is a directory not a file. All sorts of files are going to be written inside this directory, so be ready.,
I get the 'Congratulations' startup screen, but when I enter my root password and click the button, I either see a 404 page, or nothing happens
Did you set the $MOJO_URL variable in the Config.pm file? This variable is defaulted to this:
$MOJO_URL ='http://yoursite.com/cgi-bin/mojo/mojo.cgi';
Which, unless your domain is yoursite.com, is wrong. Change it to the URL that you have to access the mojo.cgi script from.
In your server configuration, can information be passed to the script using the POST method? If not, you're in trouble, cause Mojo Mail needs that. 99.99% of the time, you'll be able to use the POST method to send information to a script, but sometimes, for security reasons, you won't be able to. This can be set in your servers configuration file, like httpd.conf.
mojo.cgi: Broken pipe at MOJO/MAIL.pm
or I see this Software Error in my browser:
Error: can't pipe to mail program using settings: |/usr/bin/sendmail -t
This means that the $MAILPROG variable in the Config.pm file is incorrect. If you have shell access to your server, type in this:
which sendmail
to find out where the sendmail program is on your server, or ask your system administrator.
If you're on a WinNT server, you're most likely not going to be using Sendmail this way, you should be sending all your mail using an SMTP server. Check out the Windows readme file for more information on how to set up your copy of Mojo Mail for Windows.
Everything is working fine, but when I open up my error log (or even sprinkled on the mojo script in my web browser) I see annoying things like this:
Use of uninitialized value at /home/mysits/web/cgi-bin/mojo/mojo.cgi line 7064.
They are honestly annoying, I don't know what they mean, and frankly, I don't care, what is happening?!
Not to worry, these aren't really errors, they're 'warnings' It's saying that something isn't being done correctly and that this might be a problem. A few things to do, all these things are located at the top of the mojo.cgi file (NOT the Config.pm file)
The first line of mojo.cgi should look similar to this:
#!/usr/bin/perl -w
change that line, to this:
#!/usr/bin/perl
The '-w' is a flag, that says, tell me about warnings, (Use of uninitialized blah blah blah), we don't want that.
Around line 40 in mojo.cgi, you'll see this:
use CGI::Carp "fatalsToBrowser";
Comment this line out or delete it. That tells Mojo Mail to tell you these little things in your web browser.
Mailings work fine, until I try to send out a list message, then I get this error:
Can't locate MIME/Lite.pm in @INC (@INC contains: ...
Make sure you uploaded the MIME directory that's within the MOJO directory. The MIME directory has a script called Lite.pm which is used to make list messages. While you're at it, make sure you uploaded the MAIL directory that's within the MOJO directory as well. Mojo Mail should be uploaded in the same structure as you received it.
I get an error like this:
Software error: Can't locate MIME/Base64.pm in @INC (@INC contains: ../ . ./ ./MOJO /usr/lib/perl5/5.6.0/i386-linux /usr/lib/perl5/5.6.0 /usr/lib/perl5/site_perl/5.6.0/i386-linux /usr/lib/perl5/site_perl/5.6.0 /usr/lib/perl5/site_perl) at (eval 27) line 3.
but everything is working fine, what's up?
If we only knew. This looks like a bug in Mime::Lite - a part of Mojo that we really like (Ok, LOVE) , but wasn't developed by us, so we can't think why it's broken. Basically, don't worry about the message, it's more of a warning than anything, if a slightly annoying warning. There are directions in mojo.cgi itself to get rid of 'em.
A little backgound on how Mojo stores its list settings and archives:
Mojo stores list settings and archives in what are called ``DB Files''; they're simpler than an SQL database, but have their advantages from completely flat file databases. There are a few different DB File formats, and Mojo can use many different kinds. Different DB File formats have different limitations. One of these limitations is the amound of information they can store in each key/value pair. If you go over this limit, you're going to receive something like:
ndbm store returned -1, errno 28
Most likely, you'll experience this when sending out a list message. This is triggered from Mojo trying to archive a message into a DB FIle format that has a limitation on the amount of data it can hold. The message goes over this limit. The easiest fix is to turn off archiving.
If you want to, you can play around with how Mojo picks what DB FIle to use. In the Config.pm file, find this line:
BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File ODBM_File SDBM_File) }
DB_File, GDBM_File, NDBM_File, ODBM_File and SDBM_File are all different DB File Formats. DB_File is the best and they get poorer from there. If Mojo isn't using DB_File, it usually means it's not available. If you have root access on your server, you can always install it, it's free. Before doing that, please note that previous lists setup with a different DB File format will not work if you're uswithcing the DB File package. Mojo can only use one of these packages at a time. It's possible that all these DB File formats have import/export tools that you may want to investigate. If you don't know what file format you're using, try using the file command.
Was your hosting account moved to another server, or has the server you were on upgrade it's operating/server software/version of Perl? Those can muck things right up.
Software error: couldn't tie for reading: Permission denied
First off, Mojo Mail was never designed to be moved from one server to another, but this problem can be fixed by resetting the permissions on all the files Mojo Mail reads to do it's work. Everything you put in whatever directory you set in the $FILES variable needs to be Readable and Writeable to Mojo Mail. When you created a list, The files are created by Mojo Mail and Mojo Mail gave itself enough permissions to read and write it's own files. You reset these permissions to something completely different when you downloaded these files and uploaded them again. Try chmod'ing all the files to 777. This isn't the best thing to do, but it's likely that the files are owned by something other than Mojo Mail.