PHP - mail()不发送短信

时间:2012-01-12 22:45:40

标签: php email sms sms-gateway

我正在使用PHP在脚本中发送文本,但它不会发送!它发送电子邮件很好,但它不会发送到文本.....

我的代码:

mail('##########@txt.att.net', '', 'This is a test.');

4 个答案:

答案 0 :(得分:0)

大多数电子邮件到文本网关非常严格遵守他们接受的内容。假设您拥有正确的地址,没有被阻止,并且没有开放中继,那么还需要检查一些其他事项。

  • 包含有效的主题
  • 确保您的From:信封标头设置为有效地址,而不是服务器上的默认地址

要正确设置From:,请参阅此问题:https://stackoverflow.com/a/2014104/362536

答案 1 :(得分:0)

根据我的经验,大多数电信运营商使用像senderbase这样的服务来检查邮件是来自开放中继,信誉,spf记录等等。尝试使用PEAR邮件包并通过smtp服务器进行身份验证以进行发送。我成功地将它用于所有主要的电信公司。 php邮件功能不起作用,它需要来自一个真实的地址 - 同时确保你有正确的rdns设置。

答案 2 :(得分:0)

您需要为相应的SMS网关发送相应的标头(参数4或使用PEAR MAIL)。

至少......

'From','To','Subject','Reply-To','MIME-Version',& '内容类型'

......并且取决于承运人,可能:

'charset','Content-Transfer-Encoding,& '内容处置'

确保正确配置“日期”标题&由您的系统添加,并使用SMTP身份验证。

我们最近遇到了Verizon(vtext.com)没有提供文本或将它们反馈给我们的问题。结果显示标题为他们的网关提供了很长的消息,我只能通过删除最后三个来向Verizon员工发送文本。 : - /

使用运营商的免费电子邮件 - > SMS网关不是一个好的商业解决方案。 很受欢迎。 : - /

答案 3 :(得分:0)

您在代码行中缺少标头参数。

当前: mail('########### @ txt.att.net','','这是一个测试。');

应为: mail('########### @ txt.att.net','','这是一个测试。',$ header);

$ header是实际的标题信息。

例如:$ headers =“发件人:anyverified@emailaddress.com”;

希望这会有所帮助。 -丹