2016-06-18 5 views
3

Ich habe versucht, E-Mail senden von Heroku, mit Spring javamail, aber habe Fehler.Kann nicht senden E-Mail von Server Heroku mit Frühling Javamail

Mein Code:

import org.springframework.mail.MailSender; 
import org.springframework.mail.SimpleMailMessage; 
import org.springframework.mail.javamail.JavaMailSenderImpl; 
import org.springframework.stereotype.Service; 

@Service("mailService") 
public class JavaMailerServiceImpl { 

    private MailSender mailSender; 
    public JavaMailerServiceImpl(JavaMailSenderImpl mailSender) { 
     this.mailSender = mailSender; 
    } 

    public void sendMail(String to, String subject, String body){ 
     SimpleMailMessage message = new SimpleMailMessage(); 
     message.setTo(to); 
     message.setSubject(subject); 
     message.setText(body); 
     mailSender.send(message); 
    } 
} 

Bohnen:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="smtp.gmail.com"/> 
    <property name="port" value="587"/> 
    <property name="username" value="**********@gmail.com"/> 
    <property name="password" value="********"/> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.transport.protocol">smtp</prop> 
      <prop key="mail.smtp.auth">true</prop> 
      <prop key="mail.smtp.starttls.enable">true</prop> 
      <prop key="mail.debug">true</prop> 
     </props> 
    </property> 
</bean> 

Und Controller:

@Autowired 
    private JavaMailerServiceImpl mailService; 

    @RequestMapping(method = RequestMethod.POST) 
    public String sendEmail(HttpServletRequest request) { 
     String recipientAddress = request.getParameter("recipient"); 
     String subject = request.getParameter("subject"); 
     String message = request.getParameter("message"); 
     mailService.sendMail(recipientAddress,subject,message); 
    }` 

auf localhost: 8080 und localhost: 5000, Test erfolgreich abgeschlossen, aber auf Heroku Server Ich habe eine Ausnahme:

Authentifizierung fehlgeschlagen; verschachtelte Ausnahme ist javax.mail.AuthenticationFailedException: 534-5.7.14 Bitte melden Sie sich über Ihren Webbrowser und 534-5.7.14 an und versuchen Sie es erneut. 534-5.7.14 Erfahren Sie mehr unter 534 5.7.14 https://support.google.com/mail/answer/78754 j4sm53975482wjg.20 - gsmtp

ich alle Empfehlungen von Google durchgeführt. Können Sie mir helfen, dieses Problem zu lösen? Vielleicht Link oder so ähnlich. Vielen Dank.

Antwort

3

DevCenter Heroku sagte:

Die Heroku Plattform selbst keine E-Mail-Dienst bereitstellt - sondern bietet Add-ons, die als Trägerdienste handeln - das zu Ihrer Anwendung angebracht werden kann, den Service zu bieten.

Wenden Sie sich an den Heroku Add-ons-Marktplatz, um einen geeigneten E-Mail-Service zu erhalten, der Ihren Anforderungen entspricht.

source

+0

es funktioniert ... danken you..im können Mails jetzt senden mit Heroku – Learner

+0

So, wie Sie E-Mail über gmail Frühling schicken, so können Sie – Madhan

+0

bisschen mehr erklären Wenn wirklich - in diesem Moment Ich wusste nicht über Google Mail Frühling. Aber ich denke - es würde auch nicht funktionieren, auf Servern heroku. Grund - Jungs von Google zu viel um Sicherheit kümmern. Code in Frage funktioniert mit Yahoo auf Heroku-Servern –