Bal*_*hna 2 grails smtp zoho grails-plugin
我正在尝试在 grails mail-plugin中配置 zoho 邮件服务。这是到目前为止我的配置,
    grails {
    mail {
        host = "smtp.zoho.com"
        port = 465
        username = "email@valid.com"
        password = "some-valid-password"
        props = ["mail.smtp.auth":"true",
                 "mail.smtp.starttls.enable":"true",
                 "mail.smtp.socketFactory.port":"465",
                 "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
                 "mail.smtp.socketFactory.fallback":"false"]
    }
}
这是我的服务方法。如果我把gmail smtp配置放在上面的配置中,效果很好,所以我认为服务方法完全没有问题。另外,email@valid.com 是 Zoho 中的注册电子邮件,我可以使用 zoho 仪表板发送电子邮件。
    def sendImageProcessedNotification(用户用户,imageLink){
            尝试{
                如果(用户){
                    def 接收者 = user.email
                    mailService.sendMail {
                        异步真
                        至接收者
                        主题“主题”
                        html "HTML 正文"
                    }
                }
            }抓住(e){
                日志错误(e)
            }
        }
这是堆栈跟踪,
    2015-07-19 08:17:37,782 [pool-12-thread-1] 错误 mail.MailMessageBuilder - 无法发送电子邮件
    org.springframework.mail.MailSendException:消息失败后无法关闭服务器连接;嵌套异常是 javax.mail.MessagingException: 无法将命令发送到 SMTP 主机;
      嵌套异常是:
        java.net.SocketException:连接被远程主机关闭。失败的消息:com.sun.mail.smtp.SMTPSendFailedException:553 不允许中继,因为
    ; 消息异常详情(1)为:
    失败消息1:
    com.sun.mail.smtp.SMTPSendFailedException:553 不允许中继,因为
        在 com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2133)
        在 com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1912)
        在 com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1135)
        在 org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:433)
        在 org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345)
        在 org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
        在 org.springframework.mail.javamail.JavaMailSender$send$0.call(来源未知)
        在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110)
        在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:122)
        在 grails.plugin.mail.MailMessageBuilder$_sendMessage_closure1.doCall(MailMessageBuilder.groovy:112)
        在 grails.plugin.mail.MailMessageBuilder$_sendMessage_closure1.doCall(MailMessageBuilder.groovy)
        在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
        在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        在 java.lang.reflect.Method.invoke(Method.java:606)
        在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
        在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207)
        在 groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121)
        在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
        在 groovy.lang.Closure.call(Closure.java:423)
        在 groovy.lang.Closure.call(Closure.java:417)
        在 groovy.lang.Closure.run(Closure.java:504)
        在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        在 java.lang.Thread.run(Thread.java:745)
    您只需在添加电子邮件逻辑的地方提及“setFrom()”属性即可。示例:我使用了 JavaMailSender 并使用 MimeMessage 发送电子邮件,因此在这种情况下,我将不得不提及“helper.setFrom()”。
PS:我尝试了很多方法,最后还是用这个解决了。
| 归档时间: | 
 | 
| 查看次数: | 2169 次 | 
| 最近记录: |