2010-02-22 2 views
1

이것은 꽤 특정한 질문이며, grails nabble 포럼에는 행운이 없었기 때문에 여기에 게시 할 생각이었습니다. 나는 grails 메일 플러그인을 사용하고 있지만 내 질문은 내 서버에서 전자 메일 게이트웨이로 authsmtp를 사용하는 일반적인 질문이라고 생각합니다.Grails 서버에서 authsmtp 사용하기

authsmtp를 사용하여 내 응용 프로그램에서 메일을 보내는 데 문제가 있습니다. 메일 플러그 인을 설치하고 구성했으며 원래 ISP의 SMTP 서버를 사용하여 메일을 보냈습니다. 그러나 AWS EC2에 배포 할 때 내 신축성있는 IP가 SMTP 호스트에 의해 차단되어 실패했습니다. 그래서 나는 자신에게 authsmtp 계정을 사서 authsmtp에서 받아 들인 서버 주소를 설정했다.

그때 내가 지정했던 authsmtp 서버를 가리 키도록 SecurityConfig.groovy 내 구성을 변경

...

mailHost = "mail.authsmtp.com" 
    mailUsername = "myusername" 
    mailPassword = "mypassword" 
    mailProtocol = "smtp" 
    mailFrom = "[email protected]" 
    mailPort = 2525 

... 난 그냥이 전에 로컬 작업을 얻으려고 AWS로 다시 배포합니다. 메일 보내기 실패하고 내 로그에 나는이 예외가 :

2010-02-13 10:59:44,218 [http-8080-1] ERROR service.EmailerService - Failed to send emails: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 513 5.0.0 Your email system must authenticate before sending mail. 

org.springframework.mail.MailSendException; nested exception details (1) are: 
Failed message 1: 
com.sun.mail.smtp.SMTPSendFailedException: 513 5.0.0 Your email system must authenticate before sending mail. at 
com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388) 
     at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959) 
     at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583) 

이 난 나는 구성에서 제공하는 사용자 이름과 암호 때문에 잃어버린 조금 확실히 정확합니다.

authsmtp를 지원하는 매우 도움이 간결하지 대화는) 어떤 생각을 내가 MD5 및/또는 base64로 할 필요가 내 질문은 세 부분으로하므로, 전송하기 전에 내 자격 증명을 인코딩 ...

1을 제안합니다 실패로 어떤 일이 벌어지고 있으며 그 메시지가 인 이유는 무엇입니까? 2) authsmtp에 전달할 자격 증명을 어떻게 인코딩 할 수 있습니까? 메일 플러그인에 대해 을 구성합니다. 3) 누구든지 성공적으로 AWS EC2에서 메일 플러그인의 authsmtp를 통해 메일을 보내고 메일을 보냈습니까?

답변

0

내가 Grails의 메일 플러그인을 사용하여이 문제를 해결하기위한 방안을 찾지 못했습니다, 그래서 나는 아직 대답에 관심이 있지만 해요 workround을 찾았습니다. 다른 누군가가 나를 외로운 길로 인도하는 경우에 유용 할 수 있습니다.

0

Acegi 플러그인을 사용하여 전자 메일을 보낼 때, 내부적으로 Spring JavaMailSenderImpl이 사용됩니다. 그 docs에서 상대 : 기본 JavaMail에 세션이 다른 지정된 암호가 JavaMail에 의해 메일 서버로 전송되지 않습니다 true로 설정된 재산 "mail.smtp.auth"로 구성되어야 함

주 실행 시간. 명시 적으로 Session을 사용하여 전달하지 않으면 setJavaMailProperties (java.util.Properties)를 통해이 설정을 지정하면됩니다.

그래서 다음과 같은 당신의 SecurityConfig.groovy에 추가 :

javaMailProperties = [ "mail.smtp.auth": true] 
+0

SecurityConfig와 Config.groovy에 넣었지만 여전히 같은 오류가 발생합니다. 이 작업은 자격 증명의 암호화/암호화 작업을 수행합니까? – Simon

+0

아마도 SMTP AUTH를 사용할 때 메일 서버에 TLS가 필요합니다. 이 경우 "mail.smtp.starttls.enable"을 추가하십시오 : true. AFAIK에는 자세한 SMTP 로깅을 사용하는 방법이 있지만 스위치를 켜는 위치를 기억하지 않습니다. –

+0

이러한 것들이 작동하지만, 나는 여전히 authsmtp에서 동일한 응답을 얻습니다. – Simon