isso-comments / isso

a Disqus alternative
https://isso-comments.de
MIT License
5.03k stars 440 forks source link

[support] What are the SMTP values for Exim4? #248

Closed ghost closed 8 years ago

ghost commented 8 years ago

I have this

# Isso can notify you on new comments via SMTP. In the
# email notification, you also can moderate comments. If
# the server connection fails during startup, a null
# mailer is used.
[smtp]

# self-explanatory, optional
username =

# self-explanatory (yes, plain text, create a dedicated
# account for notifications), optional.
password =

# SMTP server
host = localhost

# SMTP port
port = 587
#465

# use a secure connection to the server, possible values: "none", "starttls"
# or "ssl". Python 2.X probably does not validate certificates (needs
# research). But you should use a dedicated email account anyways.
security = none
#starttls
#ssl

# recipient address, e.g. your email address
to = somenxavier@gmail.com

# sender address, e.g. isso@example.tld
#from = isso@somenxavier.xyz

in isso.conf but SMTP sending emails does not work. I use Exim4. What is wrong?

posativ commented 8 years ago

Do you have adjusted your notification configuration? E.g. notify = smtp.

ghost commented 8 years ago

Yes:

$ cat /etc/isso.conf 
# In this section, you configure most comment-related
# options such as database path, session key and hostname.
# Here are the default values for this section:
[general]

# File location to the SQLite3 database, highly recommended
# to change this location to a non-temporary location!
dbpath = /var/lib/isso/comments.db

# URL to your website. When you start Isso, it will probe
# your website with a simple GET / request to see if it can
# reach the webserver. If this fails, Isso may not be able
# check if a web page exists, thus fails to accept new
# comments.
# You can supply more than one host.
host =
  http://somenxavier.xyz/
  https://somenxavier.xyz/
  http://theque.somenxavier.xyz/
  https://theque.somenxavier.xyz/

# Private session key to validate client cookies. If you
# restart the application several times per hour for
# whatever reason, use a fixed key.
#session-key = ... # python: binascii.b2a_hex(os.urandom(24))

# Time range that allows users to edit/remove their own
# comments. See
# https://github.com/posativ/isso/blob/master/docs/CONFIGURATION.rst
# for valid values.
max-age = 15m

# Select notification backend for new comments. Currently, only SMTP is
# available.
# Select notification backend(s) for new comments, separated by comma.
# Available backends:
#
# stdout
#     Log to standard output. Default, if none selected.
# smtp
#     Send notifications via SMTP on new comments with activation (if
#     moderated) and deletion links.
notify = smtp

# Enable moderation queue and handling of comments still
# in moderation queue
[moderation]

# Enable comment moderation queue. This option only affects
# new comments. Comments in modertion queue are not visible
# to other users until you activate them.
enabled = false

# Remove unprocessed comments in moderation queue after
# given time.
purge-after = 30d

# Isso can notify you on new comments via SMTP. In the
# email notification, you also can moderate comments. If
# the server connection fails during startup, a null
# mailer is used.
[smtp]

# self-explanatory, optional
username =

# self-explanatory (yes, plain text, create a dedicated
# account for notifications), optional.
password =

# SMTP server
host = localhost

# SMTP port
port = 587
#465

# use a secure connection to the server, possible values: "none", "starttls"
# or "ssl". Python 2.X probably does not validate certificates (needs
# research). But you should use a dedicated email account anyways.
security = none
#starttls
#ssl

# recipient address, e.g. your email address
to = somenxavier@gmail.com

# sender address, e.g. isso@example.tld
#from = isso@somenxavier.xyz

# Enable basic spam protection features, e.g. rate-limit
# per IP address (/24 for IPv4, /48 for IPv6).
[guard]

# enable guard, recommended in production. Not useful for
# debugging purposes.
enabled = true

# limit to N new comments per minute.
ratelimit = 2

# direct-reply
direct-reply = 3
xan@deimos:~$ 

mail program in console works: I can send a message to gmail with no problem. But I can't receive isso notifications

posativ commented 8 years ago

And if you start isso, you see a message like INFO: connected to SMTP server? I have a working setup with Postfix (but using port 25 without encryption).

ghost commented 8 years ago

No:

# cat /var/log/isso.log  | grep SMTP
root@deimos:/home/xan# 
ghost commented 8 years ago

I have a working setup with Postfix (but using port 25 without encryption).

What do you mean? I have to change port = 25 in isso.conf? Or what else?

posativ commented 8 years ago

If you configured Exim4 to listen on port 587 without transport security, then use this. If you have no idea what you are doing, then you probably want to use port 25.

ghost commented 8 years ago

How can I know in what port Exim4 is configured?

With port 25 in isso.conf I get the same results after rebooting isso process.

posativ commented 8 years ago

It is your system, you should know what is running there. Please start Isso manually, e.g. isso -c /path/to/your/isso.conf run and check the message for the SMTP connection.

ghost commented 8 years ago

My system is running exim4 with defaults, which uses port 587. I can use mail without problems.

posativ commented 8 years ago

Isso doesn't use mail.

posativ commented 8 years ago

Since you are not helpful at all, does echo "Subject: Foo" | sendmail -f foo@localhost somenxavier@gmail.com work?

ghost commented 8 years ago

Since you are not helpful at all, does echo "Subject: Foo" | sendmail -f foo@localhost somenxavier@gmail.com work? Yes as I commented before

posativ commented 8 years ago

I'm still waiting for the output of isso -c my.conf run.

ghost commented 8 years ago

Here it is:

# isso -c /etc/isso.conf run
2016-04-13 12:03:54,061 ERROR: unable to connect to SMTP server
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/isso/ext/notifications.py", line 42, in __init__
    with self:
  File "/usr/lib/python2.7/dist-packages/isso/ext/notifications.py", line 63, in __enter__
    timeout=self.conf.getint('timeout'))
  File "/usr/lib/python2.7/smtplib.py", line 256, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python2.7/smtplib.py", line 316, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket
    return socket.create_connection((host, port), timeout)
  File "/usr/lib/python2.7/socket.py", line 571, in create_connection
    raise err
error: [Errno 111] Connection refused
2016-04-13 12:03:54,308 INFO: connected to http://somenxavier.xyz/
ghost commented 8 years ago

With port = 25 I get:

root@deimos:/home/xan# isso -c /etc/isso.conf run
2016-04-13 12:05:25,660 INFO: connected to SMTP server
2016-04-13 12:05:25,714 INFO: connected to http://somenxavier.xyz/

But for sending emails it is considered new standard port 587

ghost commented 8 years ago

It seems everything is OK. Close the bug, please

posativ commented 8 years ago

I have it already closed, because it is obviously PEBCAK. You tried to use a port for encrypted transfer but didn't use encryption (port 25 is still fine on localhost without encryption). Please learn your system. You could have easily figured out your issue with netstat -tulpen | grep 587.

ghost commented 8 years ago

Please be more polite. I perceive some "tension" here. What is PEBCAK?

ghost commented 8 years ago

Please, put a comment on "SMTP Server documentation" for noting that: 587 if startls and 25 if none auth system

sebix commented 8 years ago

@somenxavier You are running your own server including a mailserver. You should really know how SMTP works. What you are dealing with here are basics and things you should know (because you'ce set up the mailserver): Which authentication and encryption is available on which port. And you can easily counter-check with tools like netcat, s_client and nmap.

posativ commented 8 years ago

PEBCAK

Problem Exists Between Chair And Keyboard. Used by technical support helpdesk staff to indicate that the problem with a user’s computer or experience is due to user error.

Sebastian is right, you are the administrator. You are in charge of the system and you should debug the issue before you open a ticket. The documentation is fine, if the administrator doesn't know whether 587 requires encryption or not, he should not administrate at all.

Also, the issue tracker is not a user mailing list.