2012-02-04 2 views
0

저는 스프링 메일을 사용하여 Google의 smptp 서버를 통해 이메일을 보내고 있습니다. "From"헤더에 이메일 템플릿을 설정하고 있지만 보낸 사람으로 메일을받을 때 어떤 이유로 smtp 계정의 소유자를 얻습니다. (나는 다시 우연히 일어난다).스프링 메일 MimeMessage의 "보낸 사람"집합이 잘못되었습니다.

MimeMessage message = mailSender.createMimeMessage(); 
MimeMessageHelper helper = new MimeMessageHelper(message); 
helper.setText(forgottenPassowrdMailTemplate.getText() 
        .replace("%firstName%", token.getUser().getFirstName()) 
        .replace("%lastName%", token.getUser().getLastName()) 
        .replace("%link%", url + token.getToken()), true); 
     helper.setTo(token.getUser().getEmail()); 
     helper.setFrom(forgottenPassowrdMailTemplate.getFrom()); 
     helper.setSubject(forgottenPassowrdMailTemplate.getSubject()); 

나는 무언가를 잊고 있습니까? "보낸 사람"헤더를 명시 적으로 설정하고 있습니다.

답변

2

from 주소는 계정의 주소와 다릅니다. Google의 SMTP 서버를 통해 임의의 from 주소를 보내면 치명적일 수있는 악용 사례를 막기위한 Google의 보안 조치가 있습니다. 메일을 보내려는 계정으로 다른 계정을 연결하고 확인해야합니다. here을 참조하십시오. 원래 이메일 주소는 헤더에서 계속 사용할 수 있으며 수신자에게 표시됩니다.

하지만 다른 계정 자격 증명 (Google 계정이 아닌 경우 메일 서버)을 사용하지 않는 이유는 무엇입니까?

+0

첫 번째 답변은 내 문제를 설명합니다. 다른 계정이란 무엇입니까? 내 Google 계정을 사용하여 smtp 서버에 연결하려고 테스트 중이지만 실제 이메일은 여전히 ​​나에게 전송됩니다. 그것은 비밀 번호 복구 메커니즘이고 나는 암호 변경을 요청하는 사용자이므로 나에게 이메일을 보내는 것처럼 보입니다. – pmanolov

+0

Google의 관점에서 보낸 사람 주소가 아닌 주소는 위조입니다. 인증을 사용하지 않는다면, 인증을 막을 것입니다. – tripleee

+0

@pmanolov 당신은 단지'임의의 '주소를 사용할 수없고, 계정에 링크되어있는 메일들만이'fred @ googlemaildomainname.mock 대신에 from : [email protected]'으로 보내집니다. "다른 계정"으로 설정하고자하는 이메일 주소의 계정을 의미했습니다 ('forgottenPassowrdMailTemplate.getFrom()'). 당신은 그걸 통제 할 필요가 있습니다. "Raw"SMTP는 보낸 사람 헤더에 입력 한 내용을 확인하지 않습니다. Google은 않습니다. 검사하지 않는 SMTP 서버는 스팸 서버로 매우 빠르게 블랙리스트에 올 수 있습니다. –

관련 문제