0

私はこれを理解しようとしてかなり燃えています。主な問題は、phpメーラーでループを使用してユーザーに電子メールを送信すると、一部の人にしか届かないことです。これはDNSの問題であると考えています.

メールコードはこちら

function massEmail($from,$subject,$to,$body) {
    require_once('packages/class.phpmailer.php');
    $success = 0;
    foreach($to as $person) {
        usleep(2000);
        $mail = new PHPMailer(); 
        $mail->From = $from;
        $mail->IsHTML(true);
        $mail->FromName = "cmiVFX";
        $mail->Subject = $subject; 
        $mail->Body = $body;
        $mail->AddAddress($person);
        $ret = $mail->Send();
        if($ret) {
            $success++;
        }
    }   
    var_dump($success);
}

ホスト名を実行すると、これが表示されます

server.cmivfx.com

hostname -f または --fqdn を実行すると、

hostname: Name or service not known

sendmail を再起動すると、

hostname: Name or service not known

ここに私のホストファイルがあります

127.0.0.1 localhost.localdomain localhost
127.0.1.1 server.cmivfx.com cmivfx.com
69.162.76.226 server.cmivfx.com cmivfx.com

私のホスト名ファイルは

server.cmivfx.com

私のメールサーバーはGoogleアプリを指しているので、cmivfx.comを掘り下げてください

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11895
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;cmivfx.com.            IN  ANY

;; ANSWER SECTION:
cmivfx.com.     1553    IN  SOA ns1.limestonenetworks.com. noc.limestonenetworks.com. 1344528611 16384 2048 1048576 2560
cmivfx.com.     1553    IN  NS  ns1.limestonenetworks.com.
cmivfx.com.     1553    IN  NS  ns2.limestonenetworks.com.
cmivfx.com.     1544    IN  MX  1 ASPMX.L.GOOGLE.com.
cmivfx.com.     1544    IN  MX  5 ALT1.ASPMX.L.GOOGLE.com.
cmivfx.com.     1544    IN  MX  10 ASPMX2.GOOGLEMAIL.com.
cmivfx.com.     1544    IN  MX  10 ASPMX3.GOOGLEMAIL.com.
cmivfx.com.     1544    IN  MX  5 ALT2.ASPMX.L.GOOGLE.com.
cmivfx.com.     1519    IN  A   69.162.76.226

;; Query time: 0 msec
;; SERVER: 208.115.254.242#53(208.115.254.242)
;; WHEN: Thu Aug  9 11:48:14 2012
;; MSG SIZE  rcvd: 268

最後に、gmail でメール php コードを実行すると問題ありません。私が得る他のいくつかと

Could not instantiate mail function

sendmail について知っている人が助けてくれるのに十分な情報を提供できれば幸いです。本当にありがとう!

4

1 に答える 1

2

/etc/hosts と /etc/hostname の間に競合があります: /etc/hostname を次のように変更します: cmivfx.com

ホスト名を のままにしておく必要がある特別な理由がある場合はserver.cmivfx.com、 を使用 /etc/hostname + /etc/resolv.conf let 'hostname -f'して正しい FQDN を取得できます。

ここでいくつかの背景情報を取得できます。複数のドメインで FQDN を構成すると、メール サーバーがサポートされます。

于 2012-12-08T02:34:27.487 に答える