invalid helo after latest update

markd_mms

Registered
Dec 22, 2008
2
0
51
We were upgraded automatically to cPanel 11.24.4-R32603 - WHM 11.24.2 - X 3.9 the other day and since then we've started having problems with some people sending mail through our server. exim_rejectlog shows the following:

Code:
2008-12-24 08:10:58 H=dsl-4-120.vic1.net.au (leading-6es0sns) [125.168.4.120] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:11:03 H=abelsm.lnk.telstra.net (ABECBR16-2k) [165.228.77.156] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:11:08 H=dsl-58-6-17-194.wa.westnet.com.au (Station1) [58.6.17.194] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:12:11 H=109.28.87.203.static.vic.chariot.net.au (Admin) [203.87.28.109] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:12:52 H=(Server) [203.193.209.191] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:21:14 H=(SERVER) [210.79.30.229] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:22:51 H=(Main_User) [210.11.197.210] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:24:43 H=mail.mallmusic.com.au (MMSER01) [220.245.90.133] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
It's not obvious to me what's wrong with the HELO or what it should look like instead. Can someone explain what's wrong with those HELOs?

The funny thing is that if those users check pop3 mail and then try and send an email straight after (smtp authentication isn't required) then it works ok.

TIA
 

cPanelNick

Administrator
Staff member
Mar 9, 2015
3,481
35
208
cPanel Access Level
DataCenter Provider
We were upgraded automatically to cPanel 11.24.4-R32603 - WHM 11.24.2 - X 3.9 the other day and since then we've started having problems with some people sending mail through our server. exim_rejectlog shows the following:

Code:
2008-12-24 08:10:58 H=dsl-4-120.vic1.net.au (leading-6es0sns) [125.168.4.120] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:11:03 H=abelsm.lnk.telstra.net (ABECBR16-2k) [165.228.77.156] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:11:08 H=dsl-58-6-17-194.wa.westnet.com.au (Station1) [58.6.17.194] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:12:11 H=109.28.87.203.static.vic.chariot.net.au (Admin) [203.87.28.109] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:12:52 H=(Server) [203.193.209.191] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:21:14 H=(SERVER) [210.79.30.229] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:22:51 H=(Main_User) [210.11.197.210] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
2008-12-24 08:24:43 H=mail.mallmusic.com.au (MMSER01) [220.245.90.133] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
It's not obvious to me what's wrong with the HELO or what it should look like instead. Can someone explain what's wrong with those HELOs?

The funny thing is that if those users check pop3 mail and then try and send an email straight after (smtp authentication isn't required) then it works ok.

TIA
You can disable HELO checking in the Exim Configuration Editor inside of WHM. The trade off is you will receive more spam.
 

markd_mms

Registered
Dec 22, 2008
2
0
51
Thanks for your response. Can you tell me why the HELO's are invalid? The mail client being used in this is one custom written by our company so if there's a problem with it I need to know.

TIA
 

idBear

Member
Jan 15, 2008
9
0
51
CT
I am seeing this same problem with my clients who use Miva Empressa. This just started happening in the last few weeks but was only brought to my attention today.

This is the error produced when a Miva script tried to send an email:
Runtime Error: Access denied - Invalid HELO name (See RFC2821 4.1.3)

So, what has changed and how do I correct it? Disabling HELO checking in the Exim Configuration Editor is not an option. Is there other info that the scripts smtp command needs to add to correct this??
 

tkerns

Active Member
Jun 13, 2007
34
0
56
I am having this same issue immediately after upgrading to 11.24. Does anybody have a resolution that does not involve disabling HELO checking?
 

tripwire

Member
Apr 9, 2008
12
0
51
I have the same problem too. I have a client who's emails are constantly blocked from getting to me.

Here's the exim error:
rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
 

tkerns

Active Member
Jun 13, 2007
34
0
56
I have the same problem too. I have a client who's emails are constantly blocked from getting to me.

Here's the exim error:
rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
After opening a ticket with support, I was informed that HELO checking was introduced in 11.24, and defaulted to ON. The only way I was able to get rid of this error was to disable HELO checking in Exim configuration.

Tom
 

Alejandro P

Well-Known Member
Apr 6, 2007
51
0
156
cPanel Access Level
Root Administrator
Last week a client reported the problem on one of my servers, this was only happening on his network. From my end it worked perfectly so I suggested him to verify his network for viruses.

I suggested him this would be related to downadup virus. He did check his network and it solve the problem.
 

tonedoggydogg

Member
May 22, 2005
13
0
151
If this is referring to error #0x800CCC78 in Outlook Express...

If you are using Outlook Express (OE), Outlook, or Windows Mail, this error can sometimes be generated by leaving the "My server requires authentication" checkbox unchecked. You may need to try checking off this checkbox.

Use the below examples to find this checkbox:

1. Outlook 2000
Go to Tools > Services (or Tools > Accounts, if Services is not listed). Select your Internet E-Mail Account and press “Properties.” Go to the “Servers” tab, and check “My server requires authentication” under Outgoing Mail Server. Press “Settings,” select “Use same settings as my incoming mail server,” then press “OK” three times to save the changes & return to Outlook. Finally, restart your computer.

2. Outlook 2002 & 2003
Go to Tools > E-Mail Accounts. Select “View or change existing e-mail accounts” and press “Next.” Select your Intermedia.NET POP/SMTP account and press “Change.” Press “More Settings.” Go to the “Outgoing Server” tab, and check “My outgoing server (SMTP) requires authentication.” Select “Use same settings as my incoming mail server” and press “OK.” Press “Next,” then press “Finish” to confirm your changes and return to Outlook. Finally, restart your computer.

3. Outlook Express
Go to Tools > Accounts. Select the “Mail” tab. Select your Intermedia.NET account and press “Properties.” Go to the “Servers” tab, and check “My server requires authentication” under Outgoing Mail Server. Press “Settings,” select “Use same settings as my incoming mail server,” then press “OK” twice times to save the changes, then press “Close” to return to Outlook Express. Finally, restart your computer.
 

brianoz

Well-Known Member
Mar 13, 2004
1,146
7
168
Melbourne, Australia
cPanel Access Level
Root Administrator
If you are using Outlook Express (OE), Outlook, or Windows Mail, this error can sometimes be generated by leaving the "My server requires authentication" checkbox unchecked. You may need to try [selecting] this checkbox.
Apologies for not responding earlier; this was the problem with my user. Possibly related to the fact that he was no longer authenticating with POP before sending.

Selecting the "My server requires authentication" checkbox stopped the problems immediately, which were only with sending.
 

zerotsm

Registered
Apr 29, 2010
1
0
51
Problem Fixed!

We've also got this here, and it seems to have been a fault introduced by a recent update. I suspect the HELO checking is now too strict - it looks like it is rejecting his HELO name - which is "laptop".
I had this problem too, with a perl script that I used for sending custom invitations out. The problem I found was that my host name was not complete, When my script called Mail::Sendmail, that module in turned called Sys::Hostname which came up with just "mmx", the machine name, just like the "laptop" case cited above. WIth the strict HELO checking you need the full domain. To fix it on a linux box use the hostname command while root to set the machine's hostname to "mmx.mydomain.com" (for example) and voila! Problem solved! At least this worked with my Hostgator account.
 

jatinshah1

Registered
Nov 23, 2010
3
0
51
I am a .NET programmer. I prepared a small application to send email using email account.
I was facing the same problem when sending email. So I did programming to send HELO command to the server before sending email. I used below code. And I found the problem to be fixed on my computer with windows 7 OS. But when I run the same program on windows XP OS, its still giving the same error. HELO command is sent properly, system gets response properly but when I execute method to send email, it gives the same problem. Can any one give me steps to disable Helo checking in cPanel?
Public NotInheritable Class SmtpHelper
Private Sub New()
End Sub

''' <summary>
''' test the smtp connection by sending a HELO command
''' </summary>
''' <param name="smtpServerAddress"></param>
''' <param name="port"></param>
Public Shared Function TestConnection(ByVal smtpServerAddress As String, ByVal port As Integer) As Boolean
Dim hostEntry As IPHostEntry = Dns.GetHostEntry(smtpServerAddress)
Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), port)
Using tcpSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
'try to connect and test the rsponse for code 220 = success
tcpSocket.Connect(endPoint)
If Not CheckResponse(tcpSocket, 220) Then
Return False
End If

' send HELO and test the response for code 250 = proper response
SendData(tcpSocket, String.Format("HELO {0}" & vbCr & vbLf, Dns.GetHostName()))
If Not CheckResponse(tcpSocket, 250) Then
Return False
End If

' if we got here it's that we can connect to the smtp server
Return True
End Using
End Function

Private Shared Sub SendData(ByVal socket As Net.Sockets.Socket, ByVal data As String)
Dim dataArray As Byte() = Encoding.ASCII.GetBytes(data)
socket.Send(dataArray, 0, dataArray.Length, SocketFlags.None)
End Sub

Private Shared Function CheckResponse(ByVal socket As Socket, ByVal expectedCode As Integer) As Boolean
While socket.Available = 0
System.Threading.Thread.Sleep(100)
End While
Dim responseArray As Byte() = New Byte(1023) {}
socket.Receive(responseArray, 0, socket.Available, SocketFlags.None)
Dim responseData As String = Encoding.ASCII.GetString(responseArray)
Dim responseCode As Integer = Convert.ToInt32(responseData.Substring(0, 3))
MessageBox.Show(responseData)
If responseCode = expectedCode Then
Return True
End If
Return False
End Function
End Class
 

jatinshah1

Registered
Nov 23, 2010
3
0
51
Strange but true

Problem that I mentioned in above post was not Operating system specific. It was because of a small mistake of somebody either me or Microsoft programmer.
I did lot of research with sending proper Helo name to the email server and I also achived that too.. But that is also not necessary. However we can check connectivity with email server by sending Helo command to the server.
Problem was here. In attached source code I have used below code to send email.
Dim MailClient As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient(strOutGoingMailServer, 1025)
MailClient.UseDefaultCredentials = False
MailClient.Credentials = New Net.NetworkCredential(strFromEmailAddress, strPassword)
MailClient.Send(oMail)


In this code ... first I set "UseDefaultCredentials = False" and then assign our own network credentials. This code is working fine.

Earlier I was assigning network credentials befire setting "UseDefaultCredentials = False". means my statement order was

MailClient.Credentials = New Net.NetworkCredential(strFromEmailAddress, strPassword)
MailClient.UseDefaultCredentials = False

when I was executing earlier source code, I was getting below error,

"mailbox unavailable. The server response was: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)"

I thought this .UseDefaultCredentials = False is used to indicate whether to use Credentials defined in web.config or not. I looked into description of this property. It says as below,

//
// Summary:
// Gets or sets a System.Boolean value that controls whether the System.Net.CredentialCache.DefaultCredentials
// are sent with requests.
//
// Returns:
// true if the default credentials are used; otherwise false. The default value
// is false.
//
// Exceptions:
// System.InvalidOperationException:
// You cannot change the value of this property when an e-mail is being sent.


but order of statement is never specified. How programmer will know, where to assign this property? before assigning credentials or after assigning credentials? As this is a property, programmer will use it any where before sending email.

Thus in my case problem was with the order of the statement in code.
 

Attachments

Last edited:

crazyaboutlinux

Well-Known Member
Nov 3, 2007
939
1
66
Did you tried sending mails WITH authentication, as normally should?
First of all i am not a sender, Sender is our client (example.com & they are using google apps mail server) &
i am a recipient (testdomain.com & use Exim mail server )

when [email protected] sends mail to [email protected] it doesn't delivered
It means our recipient server (testdomain.com & use Exim mail server ) is blocking email

I found error below while checking exim logs

2011-01-03 15:14:08 H=(EXPDSI01) [209.143.xx.xx] rejected MAIL <[email protected]>: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)

But when [email protected] sends mail to any other email service provider like yahoo, google,hotmail,rediffmail,aol it successfully delivered


means our Exim email server blocking email with error Access denied - Invalid HELO name (See RFC2821 4.1.1.1)