내 ISP의 SMTP 서버를 사용하기 위해 exim을 어떻게 설정합니까(데비안이 아닌 시스템에서)?

내 ISP의 SMTP 서버를 사용하기 위해 exim을 어떻게 설정합니까(데비안이 아닌 시스템에서)?

나는하고 싶다엑심 사용내 ISP의 SMTP 서버를 통해 이메일을 보내려면 그러나, 그아치 위키매우 혼란스럽습니다(데비안 시스템에서는 exim이 훨씬 간단합니다). 나는마지막 섹션mail.internode.on.net, SMTP 주소를 에서 내 SMTP 서버로 수정 하고 로 수정합니다 . 이것은 ISP를 통해 인터넷에 연결되었을 때 작동했습니다.*@* [email protected] Ffr*@* $1@my_emaildomain.com Ffr

하지만 회사 네트워크에서 이것을 사용하려면 인증이 필요합니다. URL을 변경하면서 Gmail에 나열된 지침을 따르려고 했지만 실패했습니다.

authenticator iinet_route: cannot find authenticator driver "manualroute"

인증을 설정 exim하려면 어떻게 해야 하나요? (FWIW 나랑 같이 있어iinet.)

편집하다

나는 "Gmail"과 같은 설정을 잘못된 부분에 넣었다는 것을 깨달았습니다. 다른 곳으로 옮겼는데 더 이상 오류 메시지가 표시되지 않습니다. 그러나 exim이제 자동으로 실패합니다. 오류 메시지는 나타나지 않지만 메일이 배달되지 않습니다.

공장 기본값에 대한 변경 사항은 다음과 같습니다.

--- exim.conf.factory_default   2015-08-03 02:14:31.000000000 +1000
+++ exim.conf   2015-11-10 08:09:54.196287461 +1100
@@ -402,7 +402,7 @@

   # Deny unless the sender address can be verified.

-  require verify        = sender
+  #require verify        = sender

   # Accept if the message comes from one of the hosts for which we are an
   # outgoing relay. It is assumed that such hosts are most likely to be MUAs,
@@ -552,14 +552,19 @@
 # If the DNS lookup fails, no further routers are tried because of the no_more
 # setting, and consequently the address is unrouteable.

-dnslookup:
-  driver = dnslookup
-  domains = ! +local_domains
-  transport = remote_smtp
-  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
+#dnslookup:
+#  driver = dnslookup
+#  domains = ! +local_domains
+#  transport = remote_smtp
+#  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
 # if ipv6-enabled then instead use:
 # ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
-  no_more
+#  no_more
+
+iinet_route:
+  driver = manualroute
+  transport = iinet_relay
+  route_list = * mail.iinet.net.au


 # This alternative router can be used when you want to send all mail to a
@@ -735,6 +746,12 @@
 address_reply:
   driver = autoreply

+iinet_relay:
+  driver = smtp
+  port = 587
+  hosts_require_auth = <; $host_address
+  hosts_require_tls = <; $host_address
+


 ######################################################################
@@ -769,6 +786,7 @@
 # There are no rewriting specifications in this default configuration file.

 begin rewrite
+*@* [email protected] Ffr



@@ -821,6 +839,12 @@
 #  server_advertise_condition = ${if def:tls_in_cipher }


+iinet_login:
+  driver = plaintext
+  public_name = LOGIN
+  hide client_send = : [email protected] : PASSWORD_HERE
+
+
 ######################################################################
 #                   CONFIGURATION FOR local_scan()                   #
 ######################################################################

그리고여기내 전체 구성 파일입니다.

편집 2

또한 포트를 465로 변경해 보았지만 자동으로 실패했습니다. (FWIW 587은 msmtp에서 잘 작동합니다.)

편집 3

을(를) 사용하여 실패한 이메일에 대한 정보는 다음과 같습니다 exim -Mvl. 원래 전송 시도가 사용됨echo body | /usr/bin/mail -s subject -r [email protected] [email protected]

2015-11-10 11:53:39 Received from [email protected] U=sparhawk P=local S=428 id=20151110005339.ag4kfrHaJ%[email protected]
2015-11-10 11:53:41 [email protected] R=iinet_route T=iinet_relay defer (-42): authentication required but authentication attempt(s) failed

편집 4

편집 3에 따라 mail 명령을 다시 실행했는데 약간 다른 오류가 발생했습니다. 나는 또한exim -d+all -M messageID <ID>

$ sudo exim -Mvl 1ZwMHr-0008I4-92
2015-11-11 14:41:31 Received from [email protected] U=lee P=local S=426 id=20151111034131.VRuQn__aN%[email protected]
2015-11-11 14:41:31 [email protected] R=iinet_route T=iinet_relay defer (-53): retry time not reached for any host

전체 디버그 출력은여기.

답변1

발생한 오류에 따르면 Wiki의 Gmail 예제 스탠자를 잘못된 섹션에 넣었습니다. exim 구성은 다음과 같은 순서로 개별 부분으로 구성됩니다.

  • 기본
    전역 정의 및 설정이 포함되어 있습니다.
  • ACL
  • 라우터
    주소를 처리하는 방법; 첫타가 사용되므로 순서가 중요합니다
  • 수송
    메시지 처리 방법을 정의합니다. 이는 위의 라우터에서 참조됩니다. 순서는 중요하지 않다
  • 다시 해 보다
    전송을 재시도하는 빈도
  • 고쳐 쓰기
    주소 변경(예: 내부 주소를 전역적으로 사용 가능한 주소로 매핑)
  • 인증자
    인증 방법을 정의합니다. 서버와 클라이언트 모두로서

오류 메시지는 authenticator iinet_route: cannot find authenticator driver "manualroute"인증자 섹션에 라우터 스탠자를 넣었음을 분명히 나타냅니다.

각 스탠자를 관련 섹션에 배치하면(예: 순서를 고려하여 라인 뒤 begin routers와 라인 앞에 라우터 정의 begin transports등) 오류가 사라져야 합니다.

관련 정보