Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
Crash when sending an email
Hi,
We use external SMTP server (our ISP's one) with no authentification (I've left blank the fields ID and pwd). But on each action which sends an email like "join a forum" or "accept as member" ... (with or without ID set) we receive the following error page :
We use this server from our mail client without problem.
Where's the mistake?
Thanks for answer
We use external SMTP server (our ISP's one) with no authentification (I've left blank the fields ID and pwd). But on each action which sends an email like "join a forum" or "accept as member" ... (with or without ID set) we receive the following error page :
A fatal, non-recoverable error has occurred
Technical information (for support personel):
Error Message
Unable to send email. The SMTP server reported the following error:
Affected Elements
Email.ServerParse();
The error occurred on or near: 503 Error: authentication not enabled
For additional support documentation, visit the Lussumo Documentation website at: lussumo.com/docs
We use this server from our mail client without problem.
Where's the mistake?
Thanks for answer
0
This discussion has been closed.
Comments
if ($this->Context->Configuration['SMTP_USER'] != '' && $this->Context->Configuration['SMTP_PASSWORD'] != '') { fwrite($Socket, 'EHLO '.$SMTPHost."\r\n"); $this->ServerParse($Socket, '250'); fwrite($Socket, 'AUTH LOGIN'."\r\n"); $this->ServerParse($Socket, '334'); fwrite($Socket, base64_encode($this->Context->Configuration['SMTP_USER'])."\r\n"); $this->ServerParse($Socket, '334'); fwrite($Socket, base64_encode($this->Context->Configuration['SMTP_PASSWORD'])."\r\n"); $this->ServerParse($Socket, '235'); } else { fwrite($Socket, 'HELO '.$SMTPHost."\r\n"); $this->ServerParse($Socket, '250'); }
If you want to snoop around in the code to see if you can find out what's going wrong, you can find it in library/Framework/Framework.Class.Email.php
Sorry, but I try now to remove (or set another value) the SMTP user and password I've set for the test.
It seems impossible : after I've saved it the old ones are coming back.
The same test on other fields (for example "Support email address" in the same page ) doesn't show the same problem.
Ahem ... it seems a little bit "trickier". In fact It's saved only when I answer to the Browser (FF 1.5.0.4) I want to remember the password, when I don't, it doesn't work (I think).
When I've finally re-tested with SMTP user set to blank I've got the same message with just the difference
The error occurred on or near: 554 : Helo command rejected: Invalid name
As if it sends the "blank user" anyway.
I'm totaly rookie in PHP (but not with other languages) : how can I verify that your "authentification bypass" (that's I understand in your code) works when the SMTP user field is set to blank?
As noticed in the error msg, it's the Helo command which is sent so the
if ...
bypass is working. But the error seems having something to do with the hostname of the sending host. Do you send litteral in this field ? Which one?$Configuration['SMTP_HOST'] = 'smtp.yourhost.com'; $Configuration['SMTP_USER'] = ''; $Configuration['SMTP_PASSWORD'] = '';
The new error you are getting is a little wierd:
554 : Helo command rejected: Invalid name
As I understand it, normally that error will appear like:
554 5.5.2 <smtp.yourhost.com>: Helo command rejected: Invalid name;: Helo command rejected: Invalid name
So, this implies (to me) that your host name wasn't saved properly and it is actually trying to use a blank one.... or it is using invalid characters that cause the error to be rendered wierd.
fwrite($Socket, 'HELO '.$SMTPHost."\r\n");
with hardcoded valuefwrite($Socket, 'EHLO '.'smtp.cegetel.net'."\r\n");
: same error received.Any ideas?
PS: just for information : do I have to flush the cache memory of the browser when I change the PHP code before retry ?
I don't really know what to tell you. This might be time to start googling smtp interactions.
Oh, and regarding the cache, the most you'll ever have to do is a hard refresh.
HELO verb needs the parameter "is a valid principal host domain name for the client host" (see RFC : http://www.ietf.org/rfc/rfc1123.txt point 5.2.5 and http://cr.yp.to/smtp/helo.html)
The smtp server seems to verify that's not his own name which is used to connect (in HELO command) - but it seems not verify that's the real domaine name of the client.
If I set an arbitrary value (hardcoded) like
fwrite($Socket, 'HELO dummyserver.domain.fr'."\r\n");
IT WORKS
and the email received by the user has the header I think the solution could be:
fwrite($Socket, 'HELO hardcodedtext.com'."\r\n");
but it should be better to set the value from another field set in Application Settings page.
What do you think about it?