이메일 서버는 어떻게 설정합니까?


59

내 VPS에서 Ubuntu를 실행하고 있으며 내 도메인으로 이메일을 받고 싶습니다.

메일 서버를 쉽게 설정하려면 어떻게해야합니까?


3
좋은 질문입니다. 저는 큰 답변을 기다리고 있습니다. 몇 년 동안 두 개의 메일 서버를 구축했으며 결코 쉽지 않았습니다. 많은 결정 : SMS 서버, IMAP / POP, 메일 저장 방법, 사용자 저장 방법 ... 나는 쉽게 대답 할 수 없습니다 .
Javier Rivera

답변:


48

이것이 프로덕션 시스템에서 메일을 설정 한 방법입니다. 우리가 필요로하는 기준은 다음과 같습니다.

  • 이메일 계정
  • 이메일 별칭 (전달자)
  • IMAP, POP3 및 SMTP

"쉬운"(tl; dr)

먼저 가장 쉬운 솔루션으로 보이는 것을 다루고 싶습니다 .

sudo tasksel install mail-server

우리가 이것을 시도했을 때 이것에 관한 몇 가지 문제가 발생했습니다 : 먼저 Dovecot을 설치합니다. 이는 대부분 괜찮지 만 Courier는 우리 필요 에 따라 둘 중 더 나은 것으로 간주했습니다 . 둘째, Postfix를 사용하지만 더 강력한 MTA / SMTP 서버이기 때문에 Exim도 필요합니다. 셋째, MySQL을 설치합니다-내가 사용하는 구성에서 하나의 중단 점이 적기 때문에 구성에 플랫 파일을 선호합니다. 알 수없는 이유로 MySQL이 충돌하면 어떻게 될지 생각해보십시오. 그렇지 않으면 나머지 패키지는 매우 간단하며 소규모 메일 서비스를 위해 유지 관리하기 쉽습니다 (총 1-2 개의 전자 메일 도메인 생각).

우리의 구성

디렉토리 구조

우리는 일반적인 구성 경로를 약간 벗어 났지만 관리가 더 쉬워졌습니다.

우리의 모든 메일은 다음에 저장됩니다. /var/mail/virtual/<domain>/<user>/mail따라서 앞으로의 예 email@example.com에서는 fwd@example.com, foo@example.com을 사용하여 이메일 주소, 전달자 example@gmail.com및 잘못된 주소를 각각 나타냅니다. 위의 예에서는입니다 /var/mail/virtual/example.com/email/mail.

또한 서버의 모든 도메인 목록을 유지 관리 /etc/valiases하지만 나중에 더 자세히 설명합니다.

접미사

이것은 설정의 어느 정도 쉬운 부분입니다. postfix패키지를 설치하십시오 .

엑심

Exim을 설치 한 후 설치 Exim apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy기본 구성을 편집하여 다음 값을 바꾸거나 추가해야합니다.

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(이 줄들은 파일의 다른 부분에 나타나며, 각각을 적절히 교체하십시오)

완료되면 다음 update-exim4.conf으로 Exim 구성을 다시 빌드하십시오.

택배원

택배를 설치 courier-base설치해야이 courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

솔직히 표준 이외의 구성은 많지 않습니다. 사용자 데이터베이스 만 작성하면됩니다.

계정

Exim과 Courier는 몇 군데에서 로그인 또는 수신 이메일이 유효한지 확인합니다. Exim은 도메인이 로컬 호스트 이름으로 나열되어 있는지 또는 도메인이 /var/mail/virtual있는지 또는 도메인이에 있는지 확인합니다 /etc/valiases.

이메일 계정 만들기

결국이 프로세스를 간소화하기 위해 몇 가지 도구를 만들었지 만 새 사용자를 추가하면 다음과 같이 조정됩니다.

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

그런 다음 택배 사용자 db에 주소를 추가하십시오-그들은 로그인 할 수 있습니다

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

적절한 경우 값을 교체하십시오. 또한 - uid하고 gid 필요한 메일 사용자의 수치 사용자 / 그룹 ID가 될 수 있습니다.

userdbpw -md5 | userdb email@example.com set systempw

암호를 묻는 메시지가 나타나면 계정에 사용할 암호를 입력하십시오.

makeuserdb

마지막으로 userdb 해시 / 그림자 파일을 생성하십시오. Courier를 다시 시작하고 변경 사항이 작동하는지 테스트하십시오.

authtest email@example.com

비슷한 것을 생산해야 함

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

"인증 실패 : 작업이 허용되지 않음"이 표시되면 / etc / courier / authdaemonrc를 편집하고 authuserdb를 authmodulelist 행에 추가하십시오.

모든 테스트가 확인 된 후 관련된 다양한 서비스 ( courier-authdaemon, exim4)를 다시 시작하고 포트 143, 25, 586, 495, 110을 열고 선호하는 메일 클라이언트에서 계정을 설정하십시오.

이메일 별칭 만들기

각 도메인에 대해 /etc/valiases최소한 다음 줄을 사용하여 파일을 작성해야합니다 (없는 경우 작성).

*: :fail: No user at this address.

내용 : 수신 메일이 파일에있는 이메일 계정과 일치하지 않으면 메일이 실패하고 "이 주소의 사용자가 없습니다"라는 메시지와 함께 반송됩니다. 따라서 모든 메일 foo@example.com은 실패로 반송됩니다.

그러나 example@gmail.com과 같이 다른 곳에 유지하려는 이메일 주소가 몇 가지 있으므로 만들어야 /etc/valiases/example.com합니다. 파일의 내용은 다음과 같아야합니다.

fwd: example@gmail.com
*: :fail: No user at this address.

이렇게하면 fwd@example.com이 서버의 이메일 계정과 일치하지 않아도 /etc/valiases파일 에서 일치 하고 메일이 example@gmail.com으로 전달됩니다. 그러나 foo@example.com은 계속 실패합니다. "이 주소에 사용자가 없습니다"메시지.


11
ISBN 번호가 제공됩니까?
웨슬리

1
@WesleyDavid 나는 내 배쉬 히스토리가 ISBN으로 나타날 것이라고 생각하지 않는다 :)
Marco Ceppi

이것들을 따라-매우 감사합니다-나는 authtest 라인에서 얻은 오류를 다루기 위해 위에서 편집했습니다.
Darren Greaves

@DarrenGreaves 감사합니다! 도움을 주셔서 감사 드리며 업데이트에 감사드립니다!
Marco Ceppi

나는이 작업을 모두 얻기 위해 사투를 벌인거야 - 나는 단지 내가에서 (경로에 대한 편집) 350 라우팅 파일을 추가 할 때 작동하는 라우팅 valiases있어 debian-administration.org/articles/140 물건이 전혀 작동하지 않는 가상 도메인을 - -라우팅 파일을 추가해야 했습니까? 고마워.
대런 그리브

14

가장 쉬운 방법은 실행하는 것 sudo tasksel install mail-server입니다. 그러면 기본값이 정상인 이메일 서버가 제공됩니다. 몇 가지 질문에 답하면됩니다. 필요한 경우 나중에 수동 구성을 수행 할 수는 있지만 대부분의 경우에는 그렇지 않습니다. 화면의 지시를 따르기 만하면됩니다.

이메일 서비스 관리에 대한 읽기는 절대적으로 권장됩니다.

공식 참조 :


무엇을 할 것인지 알 수있는 게으른 방법이 있습니까 (설치할 패키지, 기본 설정) ?. 게으른 나는 그것을 직접 설치하지 않고 의미합니다.
Javier Rivera

@Javier 당신은 다음을 실행하여 설치된 내용을 볼 수 있습니다sudo tasksel --task-packages mail-server
Marco Ceppi

MySQL에 저장된 구성, 안티 스팸, 안티 바이러스 없음 ... 실제로 유용하지 않습니다 :(.
Javier Rivera


4

방금이 작업을 직접 수행 한 후에는 실제로 postfix가 필요하며 제 경우에는 imap 서버를 원했기 때문에 다른 컴퓨터에서 멋진 GUI 클라이언트 (이름을 언급하지 않음)를 사용할 수 있습니다. 나는이 문서들을 사용했다 :

접미사

비둘기장 (imap 및 pop3)

실제로 매우 간단하고 몇 분 안에 작동하며 전자 메일을 받고 있습니다. 이것은 모든 것이 ok pingability 로 설정되었는지 확인하는 데 유용합니다 .

아, 물론 당신은 dns 항목을 아래와 같이 올바르게 설정해야합니다 (나에게 맞는 설정에 따라).

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

메일 서버 끝에서 완전히 정지하고 IP 주소와 도메인 이름을 적절한 곳에 삽입하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.