Jump to content

SSMTP config can't handle password with $ in it


jumperalex

Recommended Posts

System:

unRaid 4.7

unMenu 1.4 Revision: 223

ssmtp_2.62.orig.tar.gz ...

 

Problem: Auth Failure using gmail.

 

So I narrowed the problem to the fact that my password contains a $ in it.  Whenever I add my password and press save, all is good (read: the screen still displays my full password).  Then i click reinstall with new settings and the password displayed is now truncated starting at the $ (abcd$efg => abcd).  As a test I played around with the location of the $ and sure enough, the truncation point moved with it. 

 

Solution: Then I went in and modified the .conf file in /usr/local/etc/ssmtp with mcedit.  The package manager still shows my truncated password after a screen refresh, but guess what, unRaid can now send mail with no trouble.

 

This brings up two questions:

 

Q: Will my manually edited .conf file survive a reboot?

Q: Is there a permanent solution to this behavior?

 

Thanks

Alex

Link to comment

System:

unRaid 4.7

unMenu 1.4 Revision: 223

ssmtp_2.62.orig.tar.gz ...

 

Problem: Auth Failure using gmail.

 

So I narrowed the problem to the fact that my password contains a $ in it.  Whenever I add my password and press save, all is good (read: the screen still displays my full password).  Then i click reinstall with new settings and the password displayed is now truncated starting at the $ (abcd$efg => abcd).  As a test I played around with the location of the $ and sure enough, the truncation point moved with it. 

 

Solution: Then I went in and modified the .conf file in /usr/local/etc/ssmtp with mcedit.  The package manager still shows my truncated password after a screen refresh, but guess what, unRaid can now send mail with no trouble.

 

This brings up two questions:

 

Q: Will my manually edited .conf file survive a reboot?

Unfortunately, no.

Q: Is there a permanent solution to this behavior?

The issue seems to be in how the package manager is handling the value entered in the "password" field.  You can try to precede the $ with a "\" and enter the value in the package manager config field as

abcd\$efg

 

The permanent fix would be to the package manager itself and how it deals with embedded special characters.

Thanks

Alex

You are welcome.

Link to comment

:'( no go.  when I tried adding "\" the config screen now shows the password correctly, however, what is actually stored in ssmtp.conf is still truncated and I get an Auth Fail.  Manual edit again solves the issue.

 

any other thoughts?  I suppose might be considered a bit of a "bug" worth putting on your list of things to do and/or adding a note to any instructions about it.

 

For the record, thanks so much for all your work with unRAID and unMENU, I'm a new user and all the info here has made it so easy to set up my first server that this is the first question I've had to ask.

Link to comment

:'( no go.  when I tried adding "\" the config screen now shows the password correctly, however, what is actually stored in ssmtp.conf is still truncated and I get an Auth Fail.  Manual edit again solves the issue.

 

any other thoughts?  I suppose might be considered a bit of a "bug" worth putting on your list of things to do and/or adding a note to any instructions about it.

 

For the record, thanks so much for all your work with unRAID and unMENU, I'm a new user and all the info here has made it so easy to set up my first server that this is the first question I've had to ask.

Yes, it is a bug, but my workload right now will not permit me a chance to look a it for several weeks.
Link to comment

:) Sorry, was aimed towards Joe. In the conf file, just wondering if password is stored within quotation marks. As far as I can see it's not. I just remember having this issue once before.

There are multiple places where the $ is being evaluated as a shell variable.

There is even a line in the code attempting to escape it as a special character, but apparently it is only escaping the first $ encountered, even though it is using "gsub()"

 

In any case, there is no 5 minute fix.

 

The only "patch" I can offer is for you to manually fix the value in the /usr/local/etc/ssmtp/ssmtp.conf file.

Then, copy that same file to your flash drive to your config folder.

then, add a line to the very end of the config/go script to copy your edited version into place upon reboot.

 

The line to add at the end of the "go" script would be:

cp  /boot/config/ssmtp.conf  /usr/local/etc/ssmtp/ssmtp.conf

Link to comment

Ah sweet.  Thanks.  I was just about to ask if there was a way to do that.  I figured there was, but I didn't know where, on flash, to go about doing that.

 

Slightly OT, but it is my thread after all ;) ... where is ssmtp.conf stored on shutdown?  Is it in bzroot?  Given your proposed "patch" I'm assuming it isn't anywhere that I can actually edit rather than using your method.

Link to comment

Ah sweet.  Thanks.  I was just about to ask if there was a way to do that.  I figured there was, but I didn't know where, on flash, to go about doing that.

 

Slightly OT, but it is my thread after all ;) ... where is ssmtp.conf stored on shutdown?  Is it in bzroot?  Given your proposed "patch" I'm assuming it isn't anywhere that I can actually edit rather than using your method.

It is re-created from the /boot/packages/ssmtp package.auto_install script every  time it re-installs on reboot. 
Link to comment

It is re-created from the /boot/packages/ssmtp package.auto_install script every  time it re-installs on reboot. 

 

Well then I assume the better, and easier, solution would be to edit the install script from unMENU?  Certainly easier than a manually edit of ssmtp.conf from the console and add a cp line to the "go" script.  I just did that now, but have not rebooted because I can't take the array off line at the moment.  Is there any reason not to do that?

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...