2010-11-22 66 views
1

好的,场景就是这样。我有一个PHP代码,发送电子邮件与Excel文件附加到它。我有两台不同的服务器。第一个,我发布了一个100 + kb的excel文件,它很好。我尝试了第二台服务器,同一个文件。但它失败了。我试图将文件大小最小化为10kb,幸运的是,文件已发送。现在我有点疑惑,第一台服务器怎么能发送超过100kb的附件,而第二台服务器不能。有什么我需要在php.ini中配置?PHP:邮件附件文件大小

+0

你怎么知道这是你的服务器引起的问题,而不是目标服务器? – Matthew 2010-11-22 08:02:24

+0

因为第一台服务器可以发送100KB的电子邮件。第二台服务器只能发送不到70kb。 – Mark 2010-11-22 08:17:08

回答

1

PHP错误日志或服务器的邮件日志中是否有任何内容?我不希望PHP遇到这样一个小文件的问题,所以它可能是你的邮件服务器上的一个设置。您是否检查过垃圾邮件文件夹,并且您是否也正确输入了目标电子邮件地址?

+0

是。全部正确。就像我所说的,在第一台服务器上,脚本运行顺利。当我在不同的服务器上传输文件时,即发生附件问题。 – Mark 2010-11-22 08:09:23

+0

Windows还是Unix?在Unix上,mail()函数通常会调用本地邮件服务器来处理电子邮件,因此不同的Web服务器将拥有不同的本地邮件服务器及其自己的设置。 – thelem 2010-11-22 08:12:11

+0

都在unix中。 – Mark 2010-11-22 08:15:56

6

最大尺寸由电子邮件服务器处理。

如果您没有收到关于内存大小限制或最大执行时间的警告,那么没有设置可以更改为您的php.ini。

几乎PHP能够发送任何邮件甚至100 MB(如果你的代码不使用太多的内存)。

确定电子邮件服务器将接受它之后。我认为大部分电子邮件服务器都配置为处理10 MB电子邮件。您还必须记住,该文件将被base64编码,并附有电子邮件。 Base64编码会让你的文件重33%。因此,附加到电子邮件的10MB文件实际上会生成一个13.3MB的电子邮件。

我认为首先要检查的是电子邮件服务器日志。

+0

最大尺寸由电子邮件服务器处理。 - >有没有办法,我可以覆盖它与PHP? – Mark 2010-11-22 08:09:53

+0

@Mark:否,因为它是电子邮件服务器的参数。你在使用什么MTA? – RageZ 2010-11-22 08:25:24