将文件附加到电子邮件时,是不是需要先将其存储在服务器上?
Posted
技术标签:
【中文标题】将文件附加到电子邮件时,是不是需要先将其存储在服务器上?【英文标题】:When attaching a file to an email, does it need to be stored on the server first?将文件附加到电子邮件时,是否需要先将其存储在服务器上? 【发布时间】:2010-09-18 07:30:42 【问题描述】:我有一个自动将表格导出到 CSV 文件的函数,然后我尝试将同一个文件附加到一个将通过电子邮件发送给它的函数中。我之前使用 html mime 邮件发送过附件,但我想知道是否需要先将创建的 CSV 文件存储在服务器上,然后再将其附加到电子邮件?
【问题讨论】:
【参考方案1】:这取决于你的函数,如果你有一个函数可以将表格作为 CSV 导出到一个字符串中,然后邮件函数支持从字符串创建附件,那么我认为你有你需要的......
【讨论】:
我刚刚阅读了 html mime 邮件,它确实提到它可以从 php 字符串中附加文件。【参考方案2】:理论上,您可以通过编写适当的标签并自己手工制作电子邮件来将其嵌入。
或者你可以用简单的方法将它保存到一个临时位置,使用像 PHPMailer(它可能也支持字符串附件)这样的工具来附加文件,发送邮件,然后删除临时文件。
【讨论】:
【参考方案3】:当您将二进制文件附加到电子邮件时,它会将二进制文件转换为文本,以便可以通过文本媒体进行传输。转换过程调用uuencode
用于转换二进制。
因此,当您使用客户端附加文件时,它只是对其进行 uuencode 编码并将文本与消息的其余部分一起添加。我不确定确切的格式是否让它看起来像客户端的附件(而不仅仅是邮件正文中的胡言乱语)。
【讨论】:
【参考方案4】:如果您使用 PEAR 中的 Mail_Mime 包及其“addAttachment”方法,请将“$isfile”(第 4 个)参数设置为 false,并将字符串作为“$file”(第一个)参数传递。更多here。
如果您使用 PHPMailer,请使用其“AddStringAttachment”方法。
如果你不使用这些,那么你需要更具体。
【讨论】:
以上是关于将文件附加到电子邮件时,是不是需要先将其存储在服务器上?的主要内容,如果未能解决你的问题,请参考以下文章