PHP电子邮件问题仅在我的域内工作


PHP email issue only working within my domain

我有一个托管在godaddy-linux共享托管上的PHP代码

我的脚本正在发送电子邮件到我的域,但不是外部域。

我可以从hotmail向我的域发送电子邮件,但不能从我的域向hotmail发送电子邮件。

我的域未被列为垃圾邮件

以下是我在发送到我的域时使用和工作的PHP代码。

    headers  = "From: webmaster@mydomain.com 'n";
    $headers .= 'X-Mailer: PHP/' . phpversion();
    $headers .= "MIME-Version: 1.0'r'n";
    $headers .= "Content-Type: text/html; charset=iso-8859-1'n";
mail($email, $subject, $txt, $headers)

那么,为什么它没有在我的域之外交付呢?

我可以使用脚本发送电子邮件,但只能在我自己的地址上发送。me@myserver.com.当我收到它时,地址是错误的。它不是我在标题中包含的那个

我猜你的电子邮件在发送(使用SMTP)之前没有经过身份验证。这通常会被邮件服务器阻止,因为它无法验证实际电子邮件的来源。尝试通过Godaddy服务器使用SMTP凭据验证您的电子邮件,看看是否可以修复它。

根据他们的文档,

Linux共享托管帐户中包含两个非CGI表单邮件默认文件:webformmailer.php和gdform.php。它们位于您的托管帐户的根目录。包含以下任一项脚本到您的网站创建一个表单来捕获用户信息并通过电子邮件发送到指定的地址

为PHP表单邮件程序指定电子邮件地址

要使用他们的PHP表单邮件程序,您必须指定一个电子邮件地址,以便将表单内容发送到该地址。

表格邮件无法通过@aol.com、@gmail.com、@hotmail.com发送,@msn.com或@yahoo.com地址。

指定表单发件人的电子邮件地址

  1. 登录您的GoDaddy帐户
  2. 单击Web主机
  3. 在要使用的托管帐户旁边,单击"管理"
  4. 在"宿主控制面板"的"工具"部分,单击"表单"邮件图标
  5. 在"表单电子邮件地址"部分下,键入您的电子邮件地址要与您的表单邮件程序一起使用
  6. 单击"继续"
  7. 验证这是否是您要与您的表单mailer,然后单击"更新"

欲了解更多信息,请阅读本页

更新::

最好的方法是检查GoDaddy在那里托管的PEAR扩展,如果它们有PEAR邮件,你可以使用它。如果没有,那么您应该尝试使用经过身份验证的邮件发送。

<?php
include('Mail.php');
$recipients = 'joe@example.com';
$headers['From']    = 'richard@example.com';
$headers['To']      = 'joe@example.com';
$headers['Subject'] = 'Test message';
$body = 'Test message';
$params['sendmail_path'] = '/usr/lib/sendmail';
// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory('sendmail', $params);
$mail_object->send($recipients, $headers, $body);
?>

邮件::send()–发送邮件