2016-11-16 14 views
1

現在私はPHPメール機能またはCodeIgnitorメール機能を使用してメールを送信しています。 メールIDは任意のドメインにすることができます。例[email protected][email protected][email protected]複数のメールクライアント(Yahoo | Google | Hotmail | Rediff |個人メールドメイン)のPHPメール使用

また、メールは任意のドメインにすることができます。

FROMがYAHOO以外のメールに設定されている場合、自分のメールが正しく送信されます。 YAHOOのメールからPHPメールにメールを送るのに問題があります。 ヤフーはメールをブロックしていますか?

どうすればこの問題を解決できますか?

+0

ていますYahooのSMTPサーバー経由であなたのメールを中継していますか?そうなら、はい。 – Kitson88

+0

@bub oneは彼らが望むどんなメールクライアントからでもメールを送ることができますが、SMTPの詳細を使用しなければなりません。現在、私はSMTPサーバーの詳細を使用していません。 –

+0

@ Kitson88現在、私はSMTPサーバーの詳細を使用していません。私はGmail、Yahoo、HotmailなどのSMTPクライアントの詳細をいくつか使用する必要があります。 –

答えて

1

メールサーバーを使用して、上記のドメインに代わって正常にメールを送信することはできません。これらのドメインのそれぞれは、送信者のIPがSPFと同じであることを確認するためにSPFをチェックするすべての受信者にメールサーバーを伝えるSPF(Sender Policy Framework)レコードと呼ばれるものが使用されています。あなたはあなた自身の中継からSMTPサーバー経由でメールを送信する必要があります。

GMAIL & YAHOO

v=spf1 redirect=_spf.google.com 
v=spf1 redirect=_spf.mail.yahoo.com 

チェックSPFレコードは、このサイトを使用して、ドメインに存在する場合のためにSPF例:私の意見では

http://mxtoolbox.com/spf.aspx

、あなたの最良の選択肢ドメインごとに正しいSMTPサーバーにメールを中継することです。 PHPMailerを使用すると簡単にこれを行うことができます。 FROMオプションで設定したドメインがプライベートマネージドドメインの場合、SPFレコードが設定されておらず、送信IPがブラックリストに登録されていない場合は、リレーすることができます。

あなたのIPを送っがブラックリストに載っているかどうかをチェックするためのサイト:

http://mxtoolbox.com/blacklists.aspx

あなたが設定は、特定のドメインに使用されるSMTP選択することができる方法の例を:

$email = '[email protected]'; 
$domain = explode('@', $email) ; 

switch ($domain[1]) { 

    case 'yahoo.com': 

      //NOT REAL SMTP SETTINGS! 
      $mail->Host = 'smtp1.yahoo.com'; 
      $mail->SMTPAuth = true;        
      $mail->Username = '[email protected]';     
      $mail->Password = 'secret';       
      $mail->SMTPSecure = 'tls';       
      $mail->Port = 587;   

    break; 

    case 'gmail.com': 

      //NOT REAL SMTP SETTINGS! 
      $mail->Host = 'smtp1.gmail.com'; 
      $mail->SMTPAuth = true;        
      $mail->Username = '[email protected]';     
      $mail->Password = 'secret';       
      $mail->SMTPSecure = 'tls';       
      $mail->Port = 587;   

    break; 


} 


//Rest of PHP Mailer code