본문 바로가기

리눅스 리뷰

리눅스 mailx를 사용하여 외부 SMTP로 메일 발송하기

728x90

리눅스 서버에서 시스템 알림이나 로그 등을 이메일로 받아보고 싶을 때, 가장 간편하게 사용할 수 있는 도구가 바로 mailx입니다. 이번 포스팅에서는 외부 SMTP 서버(예: Gmail)를 연동하여 메일을 발송하는 방법을 단계별로 알아보겠습니다.

1. 패키지 설치

먼저 운영체제 환경에 맞는 패키지를 설치합니다.

Ubuntu / Debian 계열

Bash
 
sudo apt-get update
sudo apt-get install mailutils

RHEL / CentOS / Fedora 계열

Bash
 
sudo yum install mailx
# 또는
sudo dnf install mailx

2. SMTP 서버 설정

메일을 발송하기 위해 SMTP 계정 정보를 설정 파일에 등록해야 합니다. 설정은 시스템 전체 적용(/etc/mail.rc) 또는 사용자별 적용(~/.mailrc) 중 선택할 수 있습니다.

설정 파일을 열어 아래 내용을 추가합니다.

Bash
 
sudo vi /etc/mail.rc

파일 하단에 추가할 내용:

Plaintext
 
# SMTP 서버 설정 (Gmail 예시)
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login

# 사용자 계정 정보
set smtp-auth-user=본인아이디@gmail.com
set smtp-auth-password=본인앱비밀번호

# SSL 인증 설정
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb

참고: Gmail을 사용하신다면 반드시 Google 계정 설정의 보안 항목 내 2단계 인증에서 생성한 앱 비밀번호를 사용해야 합니다. 일반 로그인 비밀번호는 작동하지 않습니다.


3. 메일 발송 테스트

설정이 끝났다면 터미널에서 간단하게 메일을 발송해 봅니다.

Bash
 
echo "메일 본문 내용입니다." | mail -s "메일 제목 테스트" 수신자주소@example.com

다양한 활용 옵션

  • 파일 첨부: -a 옵션을 사용합니다.
  • Bash
     
    echo "첨부 파일 확인 바랍니다." | mail -s "제목" -a /home/user/data.csv 수신자주소@example.com
    
  • 발신자 표시 변경: -r 옵션을 사용합니다.
  • Bash
     
    echo "내용" | mail -s "제목" -r "관리자 <admin@gmail.com>" 수신자주소@example.com
    

4. 트러블슈팅

메일이 정상적으로 발송되지 않는다면 다음 사항을 확인해 보세요.

  1. 로그 확인: 시스템 메일 로그(/var/log/mail.log 또는 /var/log/maillog)를 확인하여 에러 코드를 분석합니다.
  2. 포트 확인: 서버에서 외부로 465번 포트(SMTP)가 열려 있는지 확인합니다.
  3. Bash
     
    nc -zv smtp.gmail.com 465
    
  4. 앱 비밀번호: 인증 실패 시, 구글 계정의 앱 비밀번호가 최신 상태인지 다시 확인하세요.
반응형