You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FTP文件传输后邮件通知失效求助(本地测试正常)

问题:FTP服务器部署后无法通过mailto发送邮件通知

我搭建了基于FTP服务器的文件传输服务,通过文件连接器实现目录间文件传输。本地测试时,文件传输成功后可正常发送邮件通知,但部署到FTP服务器后,无任何报错却无法发送邮件。想了解使用mailto配合FTP服务器实现该功能是否有特定配置方式?

邮件序列代码

<log level="custom">
    <property name="sequence" value="FileReadSeq"/>
</log>
<property name="messageType" scope="axis2" type="STRING" value="text/html"/>
<property name="ContentType" scope="axis2" type="STRING" value="text/html"/>
<property name="Subject" scope="transport" type="STRING" value="File Received"/>
<property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
<send>
    <endpoint name="FileEpr">
        <address uri="mailto:myemail@gmail.com">
            <suspendOnFailure>
                <initialDuration>-1</initialDuration>
                <progressionFactor>1</progressionFactor>
            </suspendOnFailure>
            <markForSuspension>
                <retriesBeforeSuspension>0</retriesBeforeSuspension>
            </markForSuspension>
        </address>
    </endpoint>
</send>

Deployment.toml 配置

[[transport.mail.sender]]
name = "mailto"
parameter.hostname = "smtp.gmail.com"
parameter.port = "587"
parameter.enable_tls = true
parameter.auth = true
parameter.username = "myemail@gmail.com"
parameter.password = "emailpassword"
parameter.from = "myemail@gmail.com"

axis.xml 配置

<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
    <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
    <parameter name="mail.smtp.port">587</parameter>
    <parameter name="mail.smtp.starttls.enable">true</parameter>
    <parameter name="mail.smtp.auth">true</parameter>
    <parameter name="mail.smtp.user">myemail@gmail.com</parameter>
    <parameter name="mail.smtp.password">emailpassword</parameter>
    <parameter name="mail.smtp.from">myemail@gmail.com</parameter>
</transportSender>

可能的原因及解决方法

  • 网络连通性限制:FTP服务器所在环境可能封禁了SMTP端口(587),需验证服务器能否访问smtp.gmail.com:587,可通过以下命令测试:
    telnet smtp.gmail.com 587
    # 或使用curl
    curl -v smtp://smtp.gmail.com:587
    
  • Gmail账号权限问题:
    • 若开启了两步验证,必须使用应用专用密码替换配置中的原密码;
    • 未开启两步验证时,需在Google账号设置中启用低安全性应用访问(Gmail已逐步淘汰该选项,优先推荐应用专用密码)。
  • 配置优先级冲突:同时在axis.xml和deployment.toml中配置邮件参数可能导致冲突,建议保留deployment.toml的配置,注释掉axis.xml中的transportSender节点。
  • 日志排查:查看WSO2的wso2carbon.log日志,搜索MailTransportSender关键词,排查是否存在认证失败、连接超时等隐藏异常。
  • 端点超时配置:在邮件端点中添加超时设置,避免因网络延迟导致静默失败:
    <address uri="mailto:myemail@gmail.com">
        <suspendOnFailure>
            <initialDuration>-1</initialDuration>
            <progressionFactor>1</progressionFactor>
        </suspendOnFailure>
        <markForSuspension>
            <retriesBeforeSuspension>0</retriesBeforeSuspension>
        </markForSuspension>
        <timeout>
            <duration>30000</duration> <!-- 设置30秒超时 -->
        </timeout>
    </address>
    

内容的提问来源于stack exchange,提问作者Nalyssia Govender

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:55:12