【发布时间】:2018-11-13 00:48:47
【问题描述】:
最初我使用 'smtp.gmail.com' 作为 smtp 服务器,使用 javamail api 发送邮件。但现在我必须更改 smtp 服务器并使用我们的客户端 smtp 服务器。 假设客户端 smtp 服务器是 '143.12.12.1' 并且它没有身份验证。
那么,谁能告诉我我需要做什么配置?我是否需要向我的客户询问在他们的域中创建的发件人电子邮件(域意味着 smtp 服务器)。
目前,我使用 gmail id 作为发件人 id,而 smtp 服务器属于客户端 '143.12.12.1'。
我在我的代码中使用了以下 smtp 配置:-
smtp.config 文件配置#Email Configuration
host = 143.12.12.1
port = 25
isAuth = false
startTLS = true
startSSL= false
socketFactory = javax.net.ssl.SSLSocketFactory
isFallback = false
isDebug = true
emailUser =abc@gmail.com
password = abc
ApplicationContext.xml 配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${host}"/>
<property name="port" value="${port}"/>
<property name="session" ref="mailSession"></property>
</bean>
<bean id="mailSession" class="javax.mail.Session" factory-method="getInstance">
<constructor-arg>
<props>
<prop key="mail.smtp.auth">${isAuth}</prop>
<prop key="mail.smtp.starttls.enable">${startTLS}</prop>
<prop key="mail.smtp.ssl.enable">${startSSL}</prop>
<prop key="mail.smtp.socketFactory.port">${port}</prop>
<prop key="mail.smtp.socketFactory.class">${socketFactory}</prop>
<prop key="mail.smtp.socketFactory.fallback">${isFallback}</prop>
<prop key="mail.smtp.debug">${isDebug}</prop>
</props>
</constructor-arg>
<constructor-arg ref="smtpAuthenticator" />
</bean>
<bean id="smtpAuthenticator" class="com.ericsson.obhs.util.SmtpAuthenticator">
<constructor-arg value="${emailUser}" />
<constructor-arg value="${password}" />
</bean
>
每次我尝试发送邮件时,都会出现以下错误:-
org.springframework.mail.MailSendException:邮件服务器连接失败;嵌套异常是 javax.mail.MessagingException: 异常读取响应; 嵌套异常是: javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接?。失败消息:javax.mail.MessagingException:异常读取响应; 嵌套异常是: javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接?消息异常详情(1)为:
【问题讨论】:
标签: java spring smtp jakarta-mail