2011-07-15 56 views
1

我尝试在grails应用程序中发送消息。我用Java代码这个问题寿,这里是我的代码尝试在Grails中发送SimpleMailMessage时,必须首先发出STARTTLS命令

SimpleMailMessage message_ref = new SimpleMailMessage(); 
JavaMailSenderImpl sender_ref = new JavaMailSenderImpl(); 

      sender_ref.setHost("smtp.gmail.com") 
      sender_ref.setUsername("[email protected]") 
      sender_ref.setPassword("topsecret") 
      message_ref.setTo("[email protected]") 
      message_ref.setSubject("Hello there") 
      message_ref.setText("How are you") 
      sender_ref.send(message_ref) 

,我发现了以下异常:

SMTPSendFailedException:530 5.7.0必须发出STARTTLS命令第一

我在这里找到了一个类似的问题,这里是在这里的计算器 Must issue a STARTTLS command first. Sending email with Java and Google Apps 但它没有帮助我,因为他使用了不同的方法。

有人可以告诉我什么是错?我期待错误不在代码中,但在一些配置文件中,这是我的知识边缘。

回答

1

我帮不了你,但你的问题基本上是你需要使用SSL来与服务器通信。由于很多原因,Google不允许纯文本通信。我对Grails不太了解,但我认为它有某种SSL支持。如果不是这样,那么在javax.mail中执行它可能会更好。

StartTLS是一个文本命令,您发送到smtp服务器以明确启动安全通信。

+0

OK,帮助了一下,然后生病尝试使用javax邮件。这个APi是否包含“Mimemessage”及其辅助类? – dan

+0

我使用javax.mail类实现它,并且此错误消息再次显示 – dan

2

Grails mail plugin文档引用:

grails { 
    mail { 
    host = "smtp.gmail.com" 
    port = 465 
    username = "[email protected]" 
    password = "yourpassword" 
    props = ["mail.smtp.auth":"true",      
       "mail.smtp.socketFactory.port":"465", 
       "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory", 
       "mail.smtp.socketFactory.fallback":"false"] 
} } 
+0

谢谢,但邮件插件不能与我的项目一起工作,我尝试在此线程中修复它http://stackoverflow.com/questions/6692543/ grails-mail-plugin-doesnt-install-try-to-fix-in-config-but-still-doesnt-work,但无论如何感谢 – dan

+0

看到我的答案。 –

相关问题