Всем доброго времени суток.
Настраиваю сервер, с которого должна происходить отправка электронной почти из программы на С.
В качестве операционной системы используется Debian. В качестве почтового сервера был выбран Exim.Авторизацию в Exim настраивалась по мануалу
https://help.ubuntu.com/lts/serverguide/exim4.html
В программе на C используется libcurl в качестве SMTP клиента, который должен подключиться к серверу и отправить нужное сообщение.
В итоге получается
> AUTH LOGIN c2VydmljZQ==
* SMTP 0x2253df8 state change from EHLO to AUTHPASSWD
< 334 UGFzc3dvcmQ6
> dGhlYmVzdHNlcnZpY2Vpbndob2xld29ybGQ=* SMTP 0x2253df8 state change from AUTHPASSWD to AUTH
< 535 Incorrect authentication data
* Authentication failed: 535
> QUITВ логе /var/log/exim4/mainlog написано вот это
login_saslauthd_server authenticator failed for cityboard.info (cityboard) [W.X.Y.Z]: 535 Incorrect authentication data (set_id=service)Пользователь, с помощью которого программа не может пройти авторизацию на сервере, создавался с помощью команды /usr/share/doc/exim4-base/examples/exim-adduser, которая успешно записала в /etc/exim4/passwd вот такую строчку
service:$1$iOUE$B1ITsJwNgcAXKNBwDdrHC/:dsadasdsadsadasРазрешения у файла /etc/exim4/passwd прописаны вот такие
-rw-r----- 1 root Debian-exim 67 Дек 15 18:39 passwdПри этом даже если не использовать libcurl а просто подключиться с помощью
openssl s_client -debug -starttls smtp -crlf -connect W.X.Y.Z:25
и написать ehlo, а потом auth login происходит то же самоеВ какую сторону копать?
Лёд тронулся, господа присяжные заседатели!
Авторизация прошла, письмо отправилось, НО только когда пользователь с такими учетными данными был добавлен в систему с помощью adduser.Как теперь сделать, чтобы пользователи электронной почты были отдельно от пользователей системных. Чтобы exim использоватл свой passwd?
> Как теперь сделать, чтобы пользователи электронной почты были отдельно от пользователей
> системных. Чтобы exim использоватл свой passwd?стоить начать читать офф документацию. Секции про роутеры и транспорты.
begin routers
...
virtual_user:
driver = accept
condition = ${if eq{}{${lookup mysql{SELECT `maildir` FROM `mailbox` \
WHERE `username`='${quote_mysql:$local_part@$domain}'}}}{no}{yes}}
transport = virtual...
begin transports
remote_smtp:
driver = smtpvirtual:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = ${lookup mysql{SELECT CONCAT('/var/mail/exim/', `maildir`) \
FROM `mailbox` WHERE `username`='${local_part}@${domain}'}}
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0600
>[оверквотинг удален]
> FROM `mailbox` WHERE `username`='${local_part}@${domain}'}}
> directory_mode = 770
> envelope_to_add
> group = mail
> maildir_format
> maildir_tag = ,S=$message_size
> message_prefix = ""
> message_suffix = ""
> mode = 0600
>
Доброе утро :)
Спасибо за ответ, но вариант с базой на данный момент не интересует. Нужно сделать чтобы просто использовался файл /etc/exim4/passwd
> Нужно сделать чтобы просто использовался файл /etc/exim4/passwdв документации все это есть
>> Нужно сделать чтобы просто использовался файл /etc/exim4/passwd
> в документации все это естьВозможно.
На данный момент вопрос решился по-другому, несколько топорненько правда, но решился. :)
Создан системный пользователь, который добавлен в чёрный список SSH и у которого шелл выставлен в /bin/false
Какого-либо реального воздействия на производительность или безопасность это не оказывает, так что в принципе сойдет :)
> На данный момент вопрос решился по-другому, несколько топорненько правда, но решился. :)
> Создан системный пользователь, который добавлен в чёрный список SSH и у которого
> шелл выставлен в /bin/false
> Какого-либо реального воздействия на производительность или безопасность это не оказывает,
> так что в принципе сойдет :)если речь была всего об одной учетке, то нет и смысла что то выдумывать с виртуальными пользователями. Если количество ящиков (пользователей) > 50, то тогда имеет смысл посмотреть в сторону виртуальных пользователей. А какой при этом использовать backend особого значения не имеет, имхо
>> На данный момент вопрос решился по-другому, несколько топорненько правда, но решился. :)
>> Создан системный пользователь, который добавлен в чёрный список SSH и у которого
>> шелл выставлен в /bin/false
>> Какого-либо реального воздействия на производительность или безопасность это не оказывает,
>> так что в принципе сойдет :)
> если речь была всего об одной учетке, то нет и смысла что
> то выдумывать с виртуальными пользователями. Если количество ящиков (пользователей) >
> 50, то тогда имеет смысл посмотреть в сторону виртуальных пользователей. А
> какой при этом использовать backend особого значения не имеет, имхоЭх люди,люди..
Не зная броду..
Авторизацией по SMTP занимается saslauthd, так что и пинать надо сасл а никак не екзим!
> Эх люди,люди..
> Не зная броду..
> Авторизацией по SMTP занимается saslauthd, так что и пинать надо сасл а
> никак не екзим!тогда смотреть http://sys-adm.org.ua/mail/postfix-cyrus-sasl2
P.S.
postfix заменить на exim :)