【问题标题】:How to setup smtp server without authentication in java如何在java中设置没有身份验证的smtp服务器
【发布时间】: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


    【解决方案1】:

    摆脱所有套接字工厂和端口设置,you don't need them,它们会导致您连接到错误的端口。您可能需要根据服务器的要求设置startTLS = false

    您肯定希望“发件人”地址是您的客户端邮件服务器已知的地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 2017-03-10
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 2019-06-10
      相关资源
      最近更新 更多