2011-01-17 8 views
0

私はこれが不思議ですが、 ".com"がPHPメール( - xyz.comのような)を送信するために件名や本文に追加されると、メールは送信されません。このホスティング会社(ipage)の問題ですが、私はスクリプト自体で行うことができるかどうかを知りたいのです。なぜなら、それは鉱山のCMSだからです。私はそれを使用するすべての人に一般化しておきたいと思います。PHPメールは ".com"を処理しません

スクリプトは簡単で、次のように:あなたが見ることができるよう

function confirmEmail($username, $email, $confirm_code) { 

    $sitename = str_replace(".com", " .com", site_name); 
    $subject = "Your confirmation link here"; 
    $headers .= 'To: '.$username.' <'.$email.'>' . "\r\n"; 
    $headers .= "From: ".$sitename." <".support_email.">". "\r\n"; 
    $message = "Your Comfirmation link \n 
    Click on this link to activate your account \n 
    ".root."/confirm.php?confirm=$confirm_code"; 

    $message = wordwrap($message, 70); 

    $sendmail = mail($username,$subject,$message,$headers); 
    if ($sendmail) { 
    return true; 
    } else { 
    return false; 
    } 

    } 

は今、私はのために(先頭にスペースに注意)『.COM』「.COM」を置き換えます$ sitename variableとしても問題はありませんが、 "root"にはgivinサイトへのフルパスが含まれているので、リンクは "xyz.com/confirm.php?confirm=$confirm_code"のようになります。私は明らかにユーザーが自分の電子メールからリンクをクリックすることができないので、 "xyz .com/etc ..."のようなサイトパスの '.com'の前に空白を入れることはできません。

私はこれが奇妙な問題であることを知っています。私は何が起こっているのか、何を変えようとホスティングに頼むべきかについて何の手がかりも持っていません。

* note:site_nameとrootは別のページで以前に定義されており、正常に動作します。また、エラーは返されません。

+0

NVMについて私の答えは、間違った質問を理解しました。それでもリンクを維持しながらこれを行う方法はありませんが、あなたはYouTubeの方法でそれをやり遂げることができます:www.example DOT com – orlp

+0

恐らくスパムフィルターが使われていますか? –

+0

別のルートを考えてみましょう - ホスティング会社のメールが壊れている場合は、Gmailを使ってメールを送信します(SMTP経由)。無料で、とてもうまく動作します。 –

答えて

0

コードは正しいです。回避策は必要ありません。

これはプロバイダの問題である可能性が非常に高いです。

あなたの環境はわかりませんが、メールサーバを完全に制御できない場合は、telnetを使用してメールを送信してみてください。多くの場合、迷惑メールフィルタなどは正しく設定されておらず、正しいコードが返されません。

これでうまく動かなければ、うまく構成された外部SMTPサーバーに切り替えることをお勧めします。もしあなたがたくさんのメールを送っていなければ、Gmailを完全に使えます。

+0

ありがとうございました、ありがとうございました、それは質問を掲示したちょうど過去数分で明らかになりました。私はサインアップしてログインするので、私はこの回答に投票することができます。ありがとう皆 – nkzle

+0

実際には、より高い担当者がこの回答を投票できます。) – nkzle

+0

OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO、 0-.- – nkzle