2015-01-27 6 views
1

나 원격SMTP는 후위 통해 메일을 전송 및 nodemailer 연결

host: 'mail.5cpa.ru' 
port: 587 
secure: false (true tried also) 

SMTP 서버 꺼야 nodemailer nodejs 모듈을 사용하여 SMTP 서버 통해 전송 문제가 폐쇄 nodejs, 나는 동일한 설정을 사용 thenderbird 통해 메일을 전송할 수

로그

server 220 5cpa.ru ESMTP Postfix (Ubuntu) 
client EHLO vonica 
server 250-5cpa.ru 
250-PIPELINING 
250-SIZE 15728640 
250-ETRN 
250-STARTTLS 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250 DSN 
client STARTTLS 
server 220 2.0.0 Ready to start TLS 
socket Closing connection to the server 

감사합니다!

답변

6

나는 비슷한 문제 (어쩌면 똑같습니다)를 봤는데 자기 서명 된 SSL 인증서를 사용할 때 이런 일이 발생한다고 생각합니다.

var transporter = nodemailer.createTransport(smtpTransport({ 
    host: host, 
    port: 25, 
    auth: { 
     user: user, 
     pass: pass 
    }, 
    tls:{ 
     rejectUnauthorized: false 
    } 
})); 

오류는 "센드"콜백 함수에 적용되고, '오류'으로 방출되지 않는다 : 제가 TLS를 "rejectUnauthorized"옵션을 추가하여 수정.

2

나는 위의 대답에 충분한 명성을하지 않습니다,하지만 당신은 즉, Nodemailer에서 최신 구문을 확인할 수 있습니다 :

const smtpConfig = { 
    host: 'smtp.gmail.com', 
    port: 465, 
    secure: true, // use SSL 
    auth: { 
     user: '[email protected]', 
     pass: 'pass' 
    } 
} 

참고 :

secure: true // use SSL 

당신은 수도 SSL을 사용하도록 말하면 TLS를 사용할 필요가 없습니다.

참조 : https://nodemailer.com/2-0-0-beta/setup-smtp/

광산은 현재 후위 및 mailx의를 실행하고 난 단지 호스트 이름에 넣어했다 :

const transporter = nodemailer.createTransport({ 
      name: 'localhost' 
}) 

만큼 당신이이 테스트를 수행 할 수 있습니다로 작동합니다 (유형 셸에서) :

echo "Email Body Test" | mail -s "Email Subject Test" [email protected] 

방화벽이 작동하지 않는다면 방화벽 (포트 25)을 조사하십시오 (이 경우에는 문제가되지 않지만 다른 유사한 경우).

또한 사용자 실행 노드에 메일 프로그램 사용 권한이 있는지 확인하십시오.