ListMailPRO Email Marketing Software Forums
ListMailPRO Email Marketing Software Forums => General Help & How-To => Topic started by: tammy on January 07, 2005, 08:02:36 pm
-
Greetings!
I tried to send out my first newsletter using ListMail today, and I encountered the following problem:
The first part of the list went fine. Then suddenly I lost connection to the server.
When I got back on it said "1018 Messages Left." When I clicked on "resume," I received the following message:
If your mailing stops for any reason, close the window or . Do NOT Refresh!
Sending Mail 0 of 1018..
Sending error. Check your mail settings.
Queue Row: queueid=581490df40c12c413de10265628bd6c3 msgtype=1 userid=1586 msgid=6 email=user@speakeasy.net)
Server said:503 RCPT first (#5.5.1)
Go to config
I followed the link to Config, and it looked fine. I clicked on "test mail settings" and all was fine, but I still get the same error.
1. Any idea why this may have happened?
2. How can I finish sending to the rest of the list?
Thanks for whatever info you can provide.
-
There is a known issue with emailing users on a domain that doesn't exist or is temporarily down. I hope to have this all fixed up in the next update. For now, try removing the address noted in the error message.
Regards
-
Thanks, Dean.
I've removed the address using the User Database UI and clicked on resume once again, but I get the same error message referring to the same address.
What else can I do?
Thx.
-
Please search the forum for the word "debug". Enable the SMTP debug messages in admin.php and send your message again. Then, copy and paste (censoring exact email addresses for privacy) the last few lines and the error.
-
Hi DW,
Okay. I uncommented the "$bugs" line in admin.php. After resuming the newsletter send, I now get (note: userid redacted):
---
Connecting to SMTP server... Connected!
EHLOmsg=250-mail2.speakeasy.net
250-PIPELINING
250-SIZE 20971520
250-STARTTLS
250-AUTH LOGIN PLAIN
250 8BITMIME
pipelining support enabled.
NOOPmsg=250 ok
If your mailing stops for any reason, close the window or . Do NOT Refresh!
Sending Mail of 1018..
PIPELINE-FROMmsg=250 ok .
RCPT TO: <[redacted]@speakeasy.net>
RCPTmsg=554 Sorry, no mailbox here by that name. (#5.1.1)
DATAmsg=503 RCPT first (#5.5.1) .
Sending error. Check your mail settings.
Queue Row: queueid=581490df40c12c413de10265628bd6c3 msgtype=1 userid=1586 msgid=6 email=[redacted]@speakeasy.net)
Server said:503 RCPT first (#5.5.1)
---
It seems there is no mailbox for this user at speakeasy.net.
In your previous post, you suggested removing the offending email from the list. How do I remove the email from the resume queue? I assume it is a different thing than I did before, which is removing it from the user list.
Thx.
-
Hmm, I thought I had fixed this bug (problems with removed users who are still in queue) in the latest distribution available from the members area. I see you joined on Dec 7th, so it should probably be in there. To be safe, grab the latest files and overwrite yours (except config.php).
There may be an issue with removed users who are still in the database. Do you have the option "Keep removed users in database but don't mail" enabled for your list? If so, try toggling the User listing to "Removed" and delete the user once and for all or change the address to one that is deliverable.
-
Hi DW,
I've been using LMP for almost 1 year now, and it's working great, as you know... one thing though, recently I keep getting this 550 errors:
Server said: 503 5.0.0 Need RCPT (recipient)
Can you please tell me the easiest way to TRACK DOWN these bad emails in the lm_users table??? I can go into lm_sendq and delete the first record - which usually fixes the problem - for now - but it doesn't REMOVE the users from the lm_users table which have the bad Email address!
I'd like to know how to take the uid field in lm_sendq which appears to be decimal like: '103587' and convert that into a USERID I can track down in lm_users - but the uid in lm_users is a Hexadecimal number such as: '8c81bdd'.
Can you please tell me how to track those down and REMOVE them for good? It's really slowing me down having bad email addresses in the lm_users table....
One other thing please... I keep getting these bad recipients showing up with EMPTY Emails??? This is quite strange as they have not occurred previously in that list, but now they are? Here's the code with the 'bugs' variable turned on:
PIPELINE-FROMmsg=250 2.1.0 ... Sender ok .
RCPT TO: <>
RCPTmsg=553 5.0.0 <>... User address required
DATAmsg=503 5.0.0 Need RCPT (recipient) .
Can you tell me why this might be happening? I've never seen this before and I've been running this list for almost one year, I've not seen MANY (more than 3-4 emails) being shown as EMPTY emails???
Quick follow-up, my mailing stops at random times, sometimes 30 emails go out, sometimes 300, but always STOPS and gives me the 550 error, recipient needed, when I look at the error with bugs on it is reporting that the recipient is empty? Can you tell me what would cause this?
Is there some other problem, or something else going on?
-
DW or anyone else....
Can someone please answer questions about tracking down bad email addresses from the listq table and finding them in the users table?..
Please see my previous message in this thread...
-
webshaman,
The error appears to have occurred before the debug output you specified. Can you send the debut output from the last _two_ messages when it stalls? There might be more clues here.
-
Hi DW,
Thanks for checking in, I REALLY NEED To know, HOW to convert those ID's (in lm_sendq) into uid (user ID's) in the user table (lm_users) so I can locate any bad record in the user table - ALSO - read below about problem with 550 - just your best guess would be great on the 550 - but I'm sure you must know how to convert the bad record ID's in the lm_sendq table as you wrote the code?
Can you send the debut output from the last _two_ messages when it stalls? There might be more clues here.
I'm sorry, but it's working for now, BUT, I still would like a guess on your part as to why it does this sporadically - I've had it happen before - it seems once in a great while I hit a list that keeps giving me these 550 errors, and I have to keep deleting the top record in the lm_sendq table and re-send to get it going - but it's annoying as it can happen every 10-15 records, and then be ok for 100-200 records, and then do it again, it happens over and over, and is a mess UNTIL I finish sending that one sendq batch. Any ideas?
I can't duplicate the problem right now as it only happens sporadically and infrequently, so I cannot duplicate the 550 error problem, of course I can always create sendq records, and would like assistance on that please?
Thanks in advance,
-
This is a very serious issue and I apologize for the frustration it is causing you.
My best guess, derived from user reports, is that this happens on some servers when a target email has a non-existant or temporarily unavailable domain.
The uid field in lm_sendq corresponds with the id field in the lm_users table.
I plan to fix this very soon and have it in the next release.
-
Hi DW,
My best guess, derived from user reports, is that this happens on some servers when a target email has a non-existant or temporarily unavailable domain.
I would bet this will be a HUGE problem eventually? I read just last week that because of spammers the ISP's are working on ways to turn OFF the DNS lookup on email - because spammers are buying up domains and then not turning them on until after they send their email.
This would cause a serious problem right? It would mean that if anyone entered an address at an invalid or non-existant server like that it would bring down ALL of LMP and it's mailing functions? Please let me know when you think the next update is coming - I know you keep saying soon - but it's been almost 1 year now???
The uid field in lm_sendq corresponds with the id field in the lm_users table.
Yes, it does, but one of them is in Hexadecimal, the other is decimal notation, is that what you will fix in the next release? Is there a simple converter program I can run WITHIN SQL that will let me select the lm_sendq record in the lm_users table to find the bad one? I tried a straight select but it never finds anything - and returns nothing.
-
The answer to the problem of bad email addresses stopping listmail seems like it can be solved with an -H flag when sendmail is invoked. -H turns off reverse dns lookup.
Where in listmail is sendmail invoked and is it possible to add a flag at that point?
Thanks
Tom
A new customer with the email stoppage problem at crimescene.com
-
Could this be a sendmail-specific issue? I have only heard of about 5 people who have this problem but it is definitely starting to bug me (no pun intended:)).
ListMail queues up (non welcome/confirm/notification) messages via SMTP and does not invoke sendmail directly. This means we cannot set the -H flag, unless (possibly) we were to edit the sendmail config files. The aforementioned exceptions use internal PHP mail(), which invokes sendmail with options in PHP.INI
My guess is I will be able to solve this if I can get access to a server that has the problem.
Does anyone want to set up a second ListMail database/installation that I can test on?
Regards!
-
DW,
Ok, it's happening again, bad records every 50-100 in the lm_sendq table...
UPDATE: Ok, trying to track down a BAD uid in the lm_users table, it is NOT there, probably because my BOUNCE routine deleted the record in the middle of the night, or because that person REMOVED themselves in the middle of this lm_sendq batch (I ADDED my own Global Remove, so it's very likely that they removed themselves from another list and are no longer available for emailing).
DW, that's what's causing the problem, so you need to have a way - when running domail.php to see if the record is NOT there, and if it's not delete the record from lm_sendq and continue on, that way the mailing will go on as planned, maybe save the bad record in a table for later lookup to see the bad ones?
The only way I can continue is to delete the top record in the lm_sendq table and start the mailing again, when I do it's fine for 50-100 records, or maybe more, than blows up again, and I have to delete the top record again...
DW, do you have an idea of the code I could add to domail.php to solve this problem instead of seeing the error: Server said: 503 5.0.0 Need RCPT (recipient)?
SECOND UPDATE: I tried adding this code in admin.php
// BAS-MOD ADDED CODE TO SKIP BAD RCPTS
if($lastmsg == '503'){
fputs($ssock, "RSET\r\n");
$srvmsg = fgets($ssock,1024);
if($bugs){ echo "RSETmsg=$srvmsg<br>"; flush(); }
$error = 1; $skiptonext = 1;
if($bugs){ echo "Bad RCPT response ($email), skipping.<br><br>"; flush(); }
} else $error = '';
// END BAS-MOD
Right after this:
if ($lastmsg <> "250") {
$error = 1;
} else $error = '';
and before this:
if($lastmsg == '550'){
But it didn't seem to work properly, I thought it would skip the bad records and continue with sending? DW your thoughts?
THIRD UPDATE: I added this code
// BAS-MOD ADDED CODE TO SKIP BAD RCPTS
if($email=='') {
if($bugs){ echo "RSETmsg=$srvmsg<br>"; flush(); }
flush();
$error = 1; $skiptonext = 1;
} else {
Just After the loop begins for SMTP Pipelining, just before this code
fputs($ssock, "MAIL FROM: <$errmail>\r\n");
fputs($ssock, "RCPT TO: <$email>\r\n");
and it seems to work, DW, is that ok? Any problems with doing this, still I'd like to have a way to know how many are BAD when doing a mailing...
-
There was a fix for this a few weeks ago. Are you sure you are on the latest files from the member area? There should be a $nouser variable in admin.php that causes the program to skip users who are no longer there.
-
Okay, I have access to a sendmail system now, but am having troubles re-creating the issue.
I'm seeing a range of reported errors from you guys:
The first one is from amy1, who started this thread:
Sending Mail of 1018..
PIPELINE-FROMmsg=250 ok .
RCPT TO: <[redacted]@speakeasy.net>
RCPTmsg=554 Sorry, no mailbox here by that name. (#5.1.1)
DATAmsg=503 RCPT first (#5.5.1) .
Sending error. Check your mail settings.
Queue Row: queueid=581490df40c12c413de10265628bd6c3 msgtype=1 userid=1586 msgid=6 email=[redacted]@speakeasy.net)
Server said:503 RCPT first (#5.5.1)
In the above example it would appear that the mailer (sendmail?) has determined a user does not exist, possibly by contacting the destination server. ListMail does not recognize the response and gets confused.
I have not been able to recreate this, but a fix seems simple enough. I can issue a "RSET" (to start a new message) if the 554 error appears in response to RCPT. The drawback to this is a bounce may not be generated so the user will never be reported undeliverable.
Therefore, ideally, ListMail will interpret this AS a bounce and process it accordingly. I'll work on the initial fix and do some more research and planning for the bounce feature.
I will update very shortly on this - I'm putting it in right now.
Quoting webshaman now:
PIPELINE-FROMmsg=250 2.1.0 ... Sender ok .
RCPT TO: <>
RCPTmsg=553 5.0.0 <>... User address required
DATAmsg=503 5.0.0 Need RCPT (recipient) .
Is this always the error you receive, or do you also receive errors of the first one quoted above? This error is a bit different. It appears that ListMail cannot find an email address. You mentioned that you had made some modifications to admin.php, etc. If so, you may not have replaced your files in a while. A fix for users in queue who are deleted causing this sort of problem was released a few months ago in the main distribution. Grab the latest files and send me the last 2 messages SMTP debug info when the error occurs again, please.
Hoping to get this all sorted out soon.
Regards
-
Hi DW,
Is this always the error you receive, or do you also receive errors of the first one quoted above? This error is a bit different. It appears that ListMail cannot find an email address. You mentioned that you had made some modifications to admin.php, etc. If so, you may not have replaced your files in a while. A fix for users in queue who are deleted causing this sort of problem was released a few months ago in the main distribution. Grab
Yes, you're right, the error only occurred for users who have been deleted causing the problem. I did a fix on my own for now, but also see your fix.
A further question, from time to time I keep getting error messages that:
Sending error. Check your mail settings.
But it always says 'Server Said', and NO server error is reported... if I click config, or return I can restart the mailing with no problem, however this is quite annoying, as I would like to use this loop code for writing my own background sender that calls this function from PERL every 20 minutes or so....
Can you tell me a quick way to get rid of any error reporting or die calls, so that the function will continue to run?
Also, do you plan on including a background sender in the newest version you are going to release soon?
-
Please download the latest files from the member area. I made a fix to SMTP last night that will prevent halting on any RCPT errors.
I am considering an auto-resume script for the next release as well as a background sending option.
Please let me know if you have any troubles with the new files.
Regards
-
Hi DW,
I made a fix to SMTP last night that will prevent halting on any RCPT errors
Ok, but can you please tell me WHICH modules/lines were changed/added to? I've made significant changes to the code already and can't afford to lose all of them to stop RCPT errors.
Are you certain it's a RCPT error? How? Like I said I get
Sending error. Check your mail settings.
But Server Said says NOTHING, are you telling me these are RCPT errors also?
I am considering an auto-resume script for the next release as well as a background sending option.
Please do it! I would be greatfully indebted ; ) and willing to chip in extra if you can do that! I really don't have the time to code it up and wouldn't want to muck with your code in the next version that much, in fact I planned on writing a stand-alone module that is called from CRON every 20 mins. as I said in another message, please write one, you already know the code inside/out - just a simple PERL module to call the domail.php file and resume paused, or jammed lm_sendq - please....
-
I added more error checking to the code a while ago, possibly when I added the $nouser fix. Without you being on the same version of admin.php as me it's hard to tell what's happening. You should be able to see everything that's going on if you have SMTP debug enabled. A copy of the last few debug messages would give me something to work with. If the error is caused by a connection problem I may need to improve the SMTP error detection.
You should be prepared to overwrite admin.php from time to time. When updates are released things are changed, added, and fixed, and it's not all documented. Perhaps now, before upcoming major changes come into effect, is a good time to refresh yourself on your custom modifications by performing them again on the latest admin.php
I changed code in the pipelining section of admin.php. Non-pipelining SMTP did not have this oversight.
if($bugs){ echo "PIPELINE-FROMmsg=$srvmsg.<br>"; flush(); }
$lastmsg = substr($srvmsg, 0, 3);
if ($lastmsg <> "250") $error = 1; else $error = '';
if(!$error){
$srvmsg = getsmtpmsg($ssock,1024);
if($bugs){ echo "RCPT TO: <$email><br>RCPTmsg=".nl2br($srvmsg); flush(); }
// DEBUG
// if($email == 'bad@listmailpro.com'){ echo " WAS: $srvmsg<br>"; $srvmsg = '550 BADTEST'; }
if($bugs) $rcptmsg = $srvmsg;
$lastmsg = substr($srvmsg, 0, 3);
if ($lastmsg <> "250") {
fputs($ssock, "RSET\r\n");
$srvmsg = fgets($ssock,1024);
if($bugs){ echo "RSETmsg=$srvmsg<br>"; flush(); }
$error = 1; $skiptonext = 1;
if($bugs){ echo "Bad RCPT response: $rcptmsg<br> ($email), skipping.<br><br>"; flush(); }
} else $error = '';
if(!$error){
fputs($ssock, "DATA\r\n");
As for a Perl auto-resume script, I am not as well versed in Perl as PHP. Also, the ListMail admin functions would not be available in a Perl script. An auto-restart script could be written in PHP and called with "wget" with a password the same way Dailymail is.
The trick to restart code is detecting when a queue has stalled or quit sending. This takes storing data somewhere, such as in it's own custom MySQL table / field. The script could check if a batch of emails has decreased in size over the last X minutes.
If we can fix the stalling you won't need the resume code, so let's see if we can get that working first, shall we?
Regards!
-
I sent this manually then it stopped. I think the cron sending job is stopping as well since there are unsent emails when I log into LM in the morning - any ideas:
Here is he scren data:
Sending Mail of 4786..
Sending error. Check your mail settings.
Queue Row: queueid=2b22ae46d4a242a057584917aab8568a msgtype=1 userid=70202 msgid=48 email=doneyerman@hotmail.com)
Server said:
-
dane, Did you update to the latest files available in the member area? I just released a fix.
Regards
-
DW,
Thanks for the quick reply.... and I got your Email, glad to hear LMP is back on track :P
Perhaps now, before upcoming major changes come into effect, is a good time to refresh yourself on your custom modifications by performing them again on the latest admin.php
Yes, I agree, I always try to document my code changes, but who knows if I miss one!
Regarding changes, I've written code that allows for Global Delete from ALL lists - the only thing is, if someone removes themself from the list using the Remove From This List link, and then tries the Remove From ALL List link they get a message that their Email is no longer in the mailing list - as you would need a separate UID to track that through the different lists, I took the easy way out... anyway DW, since you're proposing some new LMP code in that spirit I'd be happy to offer that code to you if you want it... I believe the mods are in the admin.php, custom.php and a few others (can't remember right now)....
I changed code in the pipelining section of admin.php. Non-pipelining SMTP did not have this oversight.
Please tell me what pipelining is? I saw that in the code, how do I know if my site is using pipelining or not?
f we can fix the stalling you won't need the resume code, so let's see if we can get that working first, shall we?
Yes, you are right if the stalling is 100% FIXED, but I never usually even thing that anything is 100% working.... and still would propose an auto-resume functionality - perhaps something you could work in to your newest update?
Another request would be a button to let me copy the Bounced Records out to a new List and then let me email a few of those records (give an option like email 10%, or something) to let me see if any of those can be re-listed because the addresses are good again..... just a thought....
Glad to hear things are heating up in the LMP world...
-
Brett,
the only thing is, if someone removes themself from the list using the Remove From This List link, and then tries the Remove From ALL List link they get a message that their Email is no longer in the mailing list - as you would need a separate UID to track that through the different lists
If you can get the email address based on the UID you could perform a simple query to remove users from all lists:
$rows = mysql_query("select email from $utable where uid = '".addslashes($u)."';");
if(@mysql_num_rows($rows)>0) list($email) = mysql_fetch_row($rows);
mysql_query("delete from $utable where email like '$email'");
I am just finishing this feature in the update. I would have liked to have released it with the most recent minor update, but didn't because it requires a database change. I'll work on finishing up the rule-based sending (incorporating it to work with Export, Create New Lists, few more options, etc.), a wide range of simpler but useful and often-requested improvements, then I'll release.
Please tell me what pipelining is? I saw that in the code, how do I know if my site is using pipelining or not?
Pipelining offers an SMTP performance improvement. What it does is allow you to send multiple SMTP commands at the same time and receive the responses in order. It saves time because you don't have to wait for as many responses from the mail server. Almost every host these days uses pipelining. You can see whether yours does at the top of the SMTP debug output, during the initial connection.
As for your further suggestions, if I don't put auto-resume into the release I could work on it shortly after. I'm working at getting everything possible into the program ASAP.
Mailing by percentages is an interesting idea and one that has been requested more than once. Before this is done it would be greatly beneficial to keep a record of which users have received which emails. I plan to implement this soon and offer much more comprehensive logging and tracking in general. It's on the list. :)
Thanks for your input, Brett!! You are a great asset to the ListMail community.
Regards
Note: This thread has been SPLIT to talk about a new Global Remove feature...continued at this post (http://listmailpro.com/forum/index.php?topic=525.msg1884#msg1884)
-
My email is still stopping. I'm using sendmail. I installed the newest version of listmail last night. Below is the message I can when it stops. Clicking resume restarts things but I could be here all night.
Thanks for making an effort on a fix.
Tom
Queue Row: queueid=715207b217718e6c44ee5579ad3caaeb msgtype=1 userid=48169 msgid=48 email=name_removed@aol.com)
Server said:250 2.1.5 ... Recipient ok
-
I believe the server is cutting the connection and ListMail is not detecting it. I am working on an installation still having this issue in an effort to enable ListMail to recover gracefully. I do not recommend removing the reported offending user(s). Try to simply Resume your mailing.
Regards
-
toma,
The server I am currently testing on is not sendmail. If you like, please submit your server information (with a Note) at the following URL and I will do some troubleshooting:
https://www.listmailpro.com/members/?typ=other
It would be great if you could leave a few (thousand) messages in queue so that I can resume it with SMTP debug enabled to see what's happening.
Regards