Linux 시스템에서 시스템 메일이 다른 smtp 서버를 통해 전송되도록 설정할 수 있습니까? 심지어 인증이 필요할 수도 있습니까? 그렇다면 어떻게 해야 합니까?
불분명하다면 예를 들어주세요. 명령줄에 다음을 입력하면:
cat body.txt | mail -s "just a test" [email protected]
외부 SMTP 서버(예: G-mail)를 통해 이 이메일을 보낼 수 있습니까?
나는 "명령줄에서 Gmail로 메일을 보내는 방법"을 찾고 있는 것이 아니라 특정 SMTP 서버 또는 아마도 SMTP 서버의 계정(보내는 것을 무시할 수 있음)을 사용하도록 전체 시스템을 구성하는 옵션을 찾고 있습니다. 보내는 사람의 주소).
답변1
저는 sSMTP가 사용하기 매우 쉽다고 생각합니다.
Debian 기반 시스템의 경우:
apt-get install ssmtp
그런 다음 /etc/ssmtp/ssmtp.conf에서 구성 파일을 편집합니다.
Gmail을 사용하여 이메일을 보내는 구성 예:
# root is the person who gets all mail for userids < 1000
[email protected]
# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES
노트: 시스템에 "mail" 명령이 있는지 확인하십시오. mailutils 패키지는 Debian 기반 시스템에서 이 기능을 제공해야 합니다.
고쳐 쓰다: 일부 사람들(및 다른 Linux 배포판의 버그 보고서)은 sSMTP가 "공백" 또는 "#" 문자가 포함된 암호를 허용하지 않는다고 보고했습니다. sSMTP가 작동하지 않는 경우에 해당될 수 있습니다.
답변2
~을 위한접미사:
- 외부 메일 릴레이의 IP를 추가
/etc/hosts
하고 여기에 별칭 메일 릴레이를 추가합니다. 접미사 구성 수정:
relayhost = [mailrelay] smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth smtp_sasl_security_options = noanonymous
편집하다
/etc/postfix/smtp_auth
mailrelay login:password
로 변환하다해시 형식
postmap /etc/postfix/smtp_auth
말할 필요도 없이 루트만이 이것을 읽을 수 있어야 합니다...chmod u=r,og=-
답변3
mailx는 CLI에서 smtp 서버 설정을 지원합니다...
echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v [email protected]
smtp 서버가 인증되지 않은 메일 전송을 허용하는 한, 설치할 것이 없습니다.
smtp 서버 설정에는 정답이 없습니다모두Linux 시스템에 설치될 수 있는 소프트웨어입니다. 각 이메일 클라이언트는 SMTP 서버로 구성될 수 있습니다.
답변4
아래 지침에 따라 로컬 EXIM SMTP 서버를 설정하세요.이것페이지의 옵션에서 "스마트 호스트에서 보낸 메일, 로컬 메일 없음" 옵션을 선택하세요.첫 번째엑심 구성 화면. 그러면 "mail" 또는 "mailx" 명령으로 메일을 수신하고 모든 메일을 스마트 호스트(귀하의 경우 Gmail 서버)로 전달하여 배달할 수 있는 SMTP 서버가 상자에 설정됩니다.
Gmail 서버를 통해 이메일을 보내려면 다음을 설정해야 합니다.Exim의 TLS 지원, 이것은 작은 문제가 아닙니다. 이것어떻게설명 좀 해주고이것은Gmail과 관련된 추가 지침에 대한 링크가 포함되어 있습니다. 이 작업을 완료하려면 몇 시간 정도 시간을 투자해야 합니다. Gmail 서버를 통해 전송을 시도하기 전에 양쪽에서 Exim TLS 구성을 디버깅할 수 있도록 먼저 루트 액세스 권한이 있는 TLS 지원 SMTP 서버로 편지함에서 이메일을 보내는 것이 좋습니다. 통신은 암호화되므로 tcpdump와 같은 도구를 사용하여 유선에서 프로토콜을 분석할 수 없습니다.