ssmtp를 설정하고 이메일을 보내는 방법은 무엇입니까?


10

라즈베리 파이를 처음 사용합니다.

Raspian OS를 설치했습니다. 내 Gmail 계정을 사용하여 이메일을 보내려고합니다. 커맨드 라인 인터페이스와 PHP 스크립트에서 보내고 싶습니다.

나는이 가이드를 따랐다. http://iqjar.com/jar/sending-emails-from-the-raspberry-pi/

링크에서 1,2,3,4 단계를 수행했습니다.

아래 코드를 사용하여 이메일을 보낼 때

echo "Test text" | mail -s "Test Mail" me2@gmail.com

아무 일도 일어나지 않고 화면에 아무 것도 인쇄되지 않아서 이메일을받지 못했습니다.

"revaliases"에서 "mail.google"을 "smtp.gmail"로 바꾸면 다음과 같은 메시지가 나타납니다.

send-mail: Cannot open mail.google.com:587

또는

send-mail: Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. ml2sm3592928igb.10 - gsmtp)

누구든지 이것을 고치는 방법을 알고 있습니까? 감사

다음은 두 파일입니다.

ssmtp.conf

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# root=postmaster

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
# mailhub=mail

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=raspberrypi

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES


root=me@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=me@gmail.com
AuthPass=mypass
UseSTARTTLS=YES

개편

# sSMTP aliases
# 
# Format:   local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.

root:me@gmail.com:mail.google.com:587

2
이것은 특정 라즈베리 질문이 아닙니다 : -unix.stackexchange.com
Milliways

이것을 raspberry.znix.com/2013/03/postfix-better-solution-for-rpi.html 참조하십시오 . 또한 Google에서 2factor 인증을 사용하는 경우 웹을 통해 Gmail에 로그인하는 데 사용하는 비밀번호가 아닌 앱 비밀번호를 사용해야합니다.
Steve Robillard

앱 비밀번호를 어떻게 얻습니까?
오메가

당신이 시도 했습니까 UseSTARTTLS=NO?
goldilocks

예, 그러나 여전히 작동하지 않습니다.
오메가

답변:


4

아마 지금까지 알아 냈지만 ssmtp.conf 파일에서 알 수 있습니다 : root=me@gmail.com

그러나 게시 한 링크에는 다음과 같이 표시됩니다. root = postmaster

나는 그것을 그렇게두고 다른 me@gmail.com 부분을 변경했으며 그것은 나를 위해 작동합니다. 그래도 도움을 주셔서 감사합니다.


2

실제로, 아무것도 설치할 필요가 없습니다. Exim은 이미 Raspbian에 설치되어 있지만 기본적으로 로컬로 유지되도록 구성되어 있습니다. "update-exim4.conf.conf" "dc_eximconfig_configtype = 'satellite'등"파일 만 변경하면됩니다.


1

나는 똑같은 문제를 겪었다.

smtp 클라이언트가 안전하지 않은 것으로 블랙리스트에 올렸기 때문에 gmail이 요청을 차단 한 것으로 나타났습니다 (아마도 heartbleed 버그의 영향을받는 클라이언트 중 하나임 )

https://support.google.com/accounts/answer/6010255?hl=ko에서 Gmail 설정에 대해 덜 안전한 클라이언트를 허용 할 수 있습니다.

또는 가능하면 최신 버전의 smtp 클라이언트로 업그레이드하십시오.


1

나는 당신이 이것을 찾고 있다고 생각합니다 :

/unix/363814/simplest-way-to-send-one-line-mail-out-via-command-line-using-gmail

발췌 :

한 줄 메시지를 보내는 대답은 ssmtp를 사용하는 것입니다.

다음 명령으로 설치하십시오 :

sudo apt-get update
sudo apt-get install ssmtp

그런 다음 / etc / ssmtp로 이동하여 ssmtp.conf를 다음과 같이 편집하십시오.

root=rpi3abc@gmail
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=rpi3abc@gmail.com
AuthPass=testing123
UseTLS=YES

다음과 같이 한 줄짜리 라이너를 보내십시오.

echo "Testing...1...2...3" | ssmtp myusername@gmail.com

전체 파일을 분류하여 메시지로 파이프 할 수도 있습니다.


이미지 파일을 첨부 파일로 보내려면 다음을 원합니다.

/unix/381131/simplest-way-to-send-mail-with-image-attachment-from-command-line-using-gmail

기본적으로 동일하지만 다음을 추가합니다.

mpack을 설치하십시오 :

apt-get update
sudo apt-get install mpack

그런 다음 이미지를 첨부 파일로 보내십시오.

mpack -s "P&L Proj 2018" /home/pi/Desktop/finance/PL18.png importantdude@gmail.com

파일이 현재 디렉토리에 있으면 첨부 파일에 대한 완전한 경로를 사용할 필요가 없습니다.

cron에서 사용하는 경우 작업은 항상 사용자의 홈 디렉토리에서 실행되므로 첨부 파일의 전체 디렉토리 경로를 사용하는 것이 좋습니다.

짜잔 그게 다야. 더 쉬울 수 없습니다.

Raspbian 및 이후 버전의 Ubuntu에서 모두 작동합니다.

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