Mutt는 smtp 서버를 지정할 때 이메일을 보내지 않습니다.

Mutt는 smtp 서버를 지정할 때 이메일을 보내지 않습니다.

내 이메일 클라이언트로 사용해 보고 있는데 mutt내 Gmail 계정에서는 잘 작동합니다. 그런데 업무용 이메일을 사용하면 이메일이 전송되지 않습니다. 오류가 발생하지 않고 전송되지 않습니다. .muttrc이 문제를 일으키는 내 파일의 줄은 다음과 같습니다.

smtp_url = "smtp://mail.my_work_email_server.com:587"로 설정하세요.

추가해도 동작은 변경되지 않으며 smtp_pass이메일 서버 이름을 변경해도("가상" 서버 주소를 사용하더라도) 동작이 변경되지 않습니다.

답변1

나는 똑같은 것을 가지고 있었고 이것은 나에게 효과적이었습니다.

set ssl_starttls=yes
set ssl_force_tls=yes

set imap_user = "[email protected]"
set imap_pass = "!HASHEDPASSWORD!"
set folder = imap://mail.example.com/
set spoolfile = imap://mail.example.com/INBOX

# SMTP user auth
# # fill in the right user and pass based on your setup
# # protocols: smtp for TLS (25/587), smtps for SSL (465)
set smtp_url = "smtp://[email protected]:587"
set smtp_pass = "$imap_pass"

# Where to save copies of outgoing mail
set record = '+Sent'

나에게 작동하지 않는 이유는 구성 파일의 내용 순서와 존재하지 않는 폴더에 대한 링크인 폴더의 "기록 설정" 정의 때문입니다.

폴더 생성에 대한 질문에 "아니요"라고 대답하면 폴더가 정지되고 SMTP 서버에 트래픽이 표시되지 않습니다.

추신: 소스 구성 파일을 확인하세요. 충돌하는 설정 및/또는 잘못된 순서를 지정할 수 있습니다.

화타이

답변2

이 컴퓨터의 다른 메일 클라이언트를 사용하여 SMTP를 통해 메일을 성공적으로 보낼 수 있었습니까? SMTP 서버에 원격으로 로그인하여 연결을 설정할 수 있습니까? STARTTLS를 사용하고 있습니까?

mutt에서는 프로토콜을 사용하여 smtps처음부터 TLS/SSL로 보호되는 연결을 나타냅니다. 귀하의 메일 서버가 이를 예상한다면(요즘에는 많은 메일 서버가 그렇게 하고 있습니다), 그것이 문제일 수 있습니다.

그러나 메일 서버가 이를 사용하려면 STARTTLS일반 프로토콜을 사용하고 이를 사용해야 합니다.smtp://smtp_urlset ssl_starttls=yes

telnet다음은 STARTTLS를 사용하는 메일 서버를 보여주는 샘플 세션입니다 .

$ telnet smtp.example.com 587
Trying 127.0.0.1...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP Postfix (Debian/GNU)
EHLO test
250-
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

답변3

나는 하루 종일 이것을 알아내려고 노력했고, 오늘까지 성공하지 못한 채 다양한 SSL/TLS와 포트 구성 사이의 많은 조합을 조정했습니다. 마침내 이것을 구체적으로 시도했습니다:

set ssl_starttls = no

mutt의 기본 동작은 STARTTLS를 시도하는 것 같으므로 구체적으로 알려주어야 합니다.아니요

smtp_url명백한 것 외에는 추가 구성이 필요하지 않습니다 smtp_pass. 이제 이것을 사용하여 이메일을 완벽하게 보낼 수 있습니다.muttrc

set ssl_starttls = no
set smtp_url = "smtp://[email protected]@mail.example.com:587/"
set smtp_pass = "password"

이는 다음과 관련이 있습니다.권장되지 않음내 이메일 제공업체의 SSL 구성입니다. 여전히 포트 465에 권장되는 구성을 사용할 수 없습니다.

다른 사람이 시도하고 싶어할 경우를 대비하여 이메일 전송에 영향을 미치도록 제가 조정한 모든 구성은 다음과 같습니다.

set ssl_starttls = no    # apparently yes is default.
set ssl_force_tls = yes
set smtp_authenticators = "login"

set smtp_url = "smtp[s]://..."
set certificate_file = "~/.mutt/certificates"    # some recommend creating the file first: mkdir ~/.mutt && touch ~/.mutt/certificates

set ssl_verify_host = no
set ssl_verify_dates = no

답변4

이것이 오래된 스레드라는 것을 알고 있지만 어제 위 구성이 나에게 작동하지 않는 이유를 추적하는 데 2시간이 걸렸으며 다른 사람들의 시간을 절약하기 위해 솔루션을 공유하고 싶었습니다.

문제는 Google SMTP 서버에서 인증서를 한 번 이상 수락해야 한다는 것입니다. 이를 위해서는 입력을 리디렉션하지 않고 mutt를 실행해야 합니다. 그렇지 않으면 mutt가 인증서를 수락하라는 메시지를 표시할 수 없습니다.

그런데 (a) 항상을 선택해야 인증서가 에 저장됩니다 .mutt/certificates.(o)를 한 번 선택하면 제공된 인증서를 사용하지만 에는 저장되지 않습니다  .mutt/certificates.

따라서 입력을 리디렉션하지 않고(여기에는 stdin으로의 파이프 포함) mutt를 실행한 다음 제공된 인증서를 수락하세요.언제나. 그 후 다음에 mutt를 실행하면 저장된 인증서를 사용하기 때문에 제대로 작동할 것입니다.

관련 정보