요즘 NAS 만들기에 빠져있습니다. 어쩌다 발견한 블로그의 글을 보고 따라했고 오류 나는것들은 구글에 검색하니 대충 나와서 어찌저찌 처리했습니다.
그렇게 실행까지 되서 지인분들에게만 알려주고 같이 사용하게 회원가입 앱인 Registration 앱을 설치하려고 했는데 앱 페이지를 들어가보니 아무것도 안뜹니다?
그래서 18.0.3 버전때는 되서 이 게시글을 보면서 하려고 했으나 업데이트가 되어서 막혔는지 이것조차 안되서 공식 앱스토어 페이지에서 다운로드 받아서 어찌저찌 적용했습니다. (이 문제는 따로 질문글 올리도록 하겠습니다. 로그가 뜨더군요.)
적용한 것까지는 좋았으나 등록에 이메일을 치고 등록하면
내부 서버 오류
서버에서 요청을 처리할 수 없습니다.
만약 이 오류가 다시 발생하면 서버 관리자에게 다음 기술 정보를 알려 주십시오.
서버 로그에서 자세한 정보를 찾을 수 있습니다.
라고 뜨네요. 내가 서버 관리자인데 처리를 못해..
구글에 약 2시간 가량 검색해보니 제 키워드가 잘못된건지 정보가 없습니다. 여러가지 키워드로 검색한 것 같은데 안나오네요..
그래서 혹시나 기글분들은 원인을 알까 싶어서 로그 남겨봅니다.
[index] Error: Swift_TransportException: Connection could not be established with host 127.0.0.1 :stream_socket_client(): unable to connect to 127.0.0.1:25 (Connection refused) at <<closure>>
0. <<closure>>
Swift_Transport_StreamBuffer->{closure}("*** sensitive parameters replaced ***")
1. /var/www/nextcloud/3rdparty/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php line 272
stream_socket_client("127.0.0.1:25", 111, "Connection refused", 10, 4, null)
2. /var/www/nextcloud/3rdparty/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php line 58
Swift_Transport_StreamBuffer->establishSocketConnection()
3. /var/www/nextcloud/3rdparty/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php line 143
Swift_Transport_StreamBuffer->initialize({protocol: "",ho ... ]})
4. /var/www/nextcloud/3rdparty/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php line 65
Swift_Transport_AbstractSmtpTransport->start()
5. /var/www/nextcloud/lib/private/Mail/Mailer.php line 192
Swift_Mailer->send(Swift_Message {}, [])
6. /var/www/nextcloud/apps/registration/service/mailservice.php line 101
OC\Mail\Mailer->send(OC\Mail\Message {})
7. /var/www/nextcloud/apps/registration/controller/registercontroller.php line 90
OCA\Registration\Service\MailService->sendTokenByMail(OCA\Registration\Db\Registration {id: 1})
8. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 170
OCA\Registration\Controller\RegisterController->validateEmail("이메일 주소가 나와서 지웠습니다.")
9. /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 99
OC\AppFramework\Http\Dispatcher->executeController(OCA\Registration ... {}, "validateEmail")
10. /var/www/nextcloud/lib/private/AppFramework/App.php line 125
OC\AppFramework\Http\Dispatcher->dispatch(OCA\Registration ... {}, "validateEmail")
11. /var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php line 47
OC\AppFramework\App::main("OCA\\Registrati ... r", "validateEmail", OC\AppFramework\ ... {}, {_route: "regist ... "})
12. <<closure>>
OC\AppFramework\Routing\RouteActionHandler->__invoke({_route: "regist ... "})
13. /var/www/nextcloud/lib/private/Route/Router.php line 299
call_user_func(OC\AppFramework\ ... {}, {_route: "regist ... "})
14. /var/www/nextcloud/lib/base.php line 1008
OC\Route\Router->match("/apps/registration/")
15. /var/www/nextcloud/index.php line 38
OC::handleRequest()
POST /apps/registration/
from 아이피 주소가 나와서 지웠습니다. at 2020-05-05T16:59:11+00:00
로그에 보니 25포트를 사용하는 것 같아서 일단 iptables 명령어를 이용하여 25번 포트를 열어두었고 공유기에서도 25번 포트를 개방했습니다만 그래도 안되더군요.
왜 안되는지 모르겠습니다. 로그도 읽을 줄 모르니 더 답답하네요.
더 자세한 상황을 알고싶으시다면 말씀해주세요. 부탁드립니다.
어쨌든, 로그 내용만 가지고 본다면 이건 [이메일 서버] 문제입니다. 어떤 이메일을 보낼 때는 보통 앱이 직접 보내는 것이 아니라 이메일 서버를 거쳐서 보내거든요. 위 로그의 내용은 회원가입 앱에서 이메일을 보내기 위해 지금 작동하고 있는 시스템 자체의 이메일 서버(25번 포트 - SMTP)에 접속하려고 했다가 실패했다는 내용입니다. 아마 해당 포트에서 작동하는 이메일 서버 자체가 없는 것이 아닌가 싶군요. 제가 Nextcloud 및 해당 앱을 직접 써 본 적은 없습니다만, Nextcloud의 앱이나 내장 프로그램 중에는 아마 이메일 서버 역할을 하는 것도 있을 겁니다. 그걸 설치하고 올바르게 설정한 다음에 다시 시도해 보시죠. 혹은, 문제의 회원가입 앱 내부 설정 중에 이메일 전송과 관련된 설정이 있다면 그걸 적절히 수정하여 외부 이메일 서비스에 연결할 수 있을지도 모릅니다.
p.s.
근래의 이메일 서비스 상당수는 스팸 방지 대책으로 유명 이메일 서비스가 아니라 개인 서버에서 직접 발신하는 이메일일 경우 무조건 스팸 처리하는 정책을 채택한 경우가 많습니다. 그 말은 해당 NAS에서 직접 이메일을 발신할 경우 인증 메일이 스팸함으로 갈 확률이 높아진다는 점이지요. 이 점도 참고하시기 바랍니다.