0

状況: クライアント(domain.comの所有者)がwww.domain.comのAレコードを、domain.comの背後でWebサイトを運営しているサーバーの1つのIPアドレスに設定しました。このドメインのホスティングのみを提供しており、独自のメールサーバーがあります。

これは、domain.comがdomain.comのメールサーバーとは別のIPを持っていることを意味します。

問題: PHPからfoo@bar.comへのメールの送信は機能しますが、*@domain.comへのメールの送信は機能しません。

質問: これはSPFレコードと関係がありますか?どうすればこれを解決できますか?

どうも

バンディ

4

3 に答える 3

1

これは共有ホストで私に起こりました。おそらく、Webサーバーにローカル配信メカニズムが設定されているためです。つまり、Webサーバーが@ domain.comの電子メールを見ると、それが処理するものであると想定します。実際のメールサーバーには渡されません。

Webサーバーのパネル(Cpanelなど)に移動し、このドメインの電子メール設定を確認します。domain.comで「ローカル配信」などが無効になっていることを確認してください

于 2012-05-26T07:12:26.977 に答える
0

メインのdomain.com(www。なし)にCNAMEレコードがありますか?これにより、ドメインのmxレコードがcnameレコードに自動的に参照されます。

MXレコードの特徴的なペイロード情報は、メールホストの完全修飾ドメイン名と設定値です。ホスト名は、DNS内の1つ以上のアドレスレコード(A、またはAAAA)に直接マップする必要があり、CNAMEレコードを指してはなりません。

http://en.wikipedia.org/wiki/MX_record#cite_note-0

于 2012-05-25T14:02:51.950 に答える
0

電子メールを送信する最良の方法は、SMTPメソッドを使用することです。

http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php4/0.90/

サンプルファイル:

<?php
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();                                      // set mailer to use SMTP
$mail->Host = "mail.example.net";  // specify main and backup server
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "user@example.net";  // SMTP username
$mail->Password = "password"; // SMTP password

$mail->From = "example@example.net";
$mail->FromName = "Mailer";
$mail->AddAddress("destiny@example.net");


//$mail->AddReplyTo("info@example.com", "Information");

$mail->WordWrap = 50;                                 // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name
$mail->IsHTML(true);                                  // set email format to HTML

$mail->Subject = "Here is the subject";
$mail->Body    = "This is the HTML message body <b>in bold!</b>";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";

if(!$mail->Send())
{
    echo "Message could not be sent. <p>";
    echo "Mailer Error: " . $mail->ErrorInfo;
    exit;
}

echo "Message has been sent";
?>
于 2012-05-25T14:56:34.360 に答える