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

iOS应用通过SMTP发邮件时隐藏Firebase存储PDF链接的实现咨询

实现方案

该需求可以正常实现,仅需将原纯文本格式的邮件内容调整为HTML格式,即可为PDF链接绑定自定义的显示文本,隐藏原始URL。

具体修改步骤

  • 调整邮件部分的内容类型,将text/plain替换为text/html
  • 遍历存储PDF链接的数组,将每一条URL转换为<a>标签格式,自定义设置标签显示文本
  • 组装HTML格式的邮件内容后替换原有纯文本内容即可

修改后参考代码

func sendEmail() {
     let message = SKPSMTPMessage()
     message.relayHost = "smtp.gmail.com"
     message.login = "****@gmail.com"
     message.pass = "*****"
     message.requiresAuth = true
     message.wantsSecure = true
     message.relayPorts = [587]
     message.fromEmail = "****@gmail.com"
     message.toEmail = "****@gmail.com"
     message.subject = "subject"
     // 转换URL为带自定义名称的HTML超链接
     var linkHtmlStr = ""
     for (index, urlStr) in getmailpdf.enumerated() {
         // 可根据业务需求替换为任意自定义显示名,比如PDF的实际文件名
         let docName = "Document\(index + 1)"
         linkHtmlStr += "<p><a href=\"\(urlStr)\">\(docName)</a></p>"
     }
     // 组装完整HTML邮件内容
     let emailHtml = """
     <p>Hi,</p>
     <p>请查看下方申请的文档:</p>
     \(linkHtmlStr)
     """
     let messagePart = [
        kSKPSMTPPartContentTypeKey: "text/html; charset=UTF-8", 
        kSKPSMTPPartMessageKey: emailHtml
     ]
     message.parts = [messagePart]
     message.delegate = self
     message.send()
 }

效果示例

自定义链接显示效果

补充说明

如果需要兼容不支持HTML渲染的极端邮件客户端场景,可以同时添加纯文本、HTML两个邮件part,客户端会自动适配可渲染的版本进行展示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:36:03