0

twilio がページを呼び出している 2 番目のケースで php メールが受信されないのはなぜですか? E メールを配信不能にする API から返される可能性のある文字はありますか?

1) ブラウザーに URL を入力すると、記録フォルダーに wav ファイルが作成され、すべての受信者に電子メールとテキスト メッセージが送信されます。以下の出力が提供され、「1」はメッセージが送信されたことを示します。

2) twilio がページを呼び出して xml を処理すると、実際のメッセージがサーバーに記録され、以下の出力が twilio に提供されます (アカウントで確認済み) が、誰も電子メールまたはテキストを受信しません。xml の本文には、メッセージが送信されたことを示す「1」が表示されます。

私のスクリプト:

<?php
date_default_timezone_set('America/New_York');
//copy the remote wav file to my server
$recording = file_get_contents($_REQUEST['RecordingUrl']);
$name = "recordings/".str_replace("+","",$_REQUEST['Caller'])."-".date('Y-m-d-G-i-s',time()).".wav";
$fh = fopen("../".$name, 'w') or die("can't open file");
$stringData = $recording;
fwrite($fh, $stringData);
fclose($fh);

//email the people that need to get the message
$to = "email1@yahoo.com";
$subject = "Voicemail from ".$_REQUEST['From'];
$message = "Click below to listen to your message:\n\r  http://domain.com/twilio/".$name;
$from = "email2@domain.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
$to = "email3@domain.com";
mail($to,$subject,$message,$headers);
$to = "9545555555@messaging.sprintpcs.com";
$sent = mail($to,$subject,$message,$headers);

header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n
            <Response>
                <Say>Thank you for your message. Good bye.".$sent."</Say>
                <Hangup/>
            </Response>";
?>

出力:

        <Response>
            <Say>Thank you for your message. Good bye.1</Say>
            <Hangup/>
        </Response>

twilio がスクリプトを呼び出して、ライブの twilio メッセージから文字が存在するかどうかを確認するときに、php メール関数の各変数の内容を確認するだけです。次のようになります。

$to = 9545555555@messaging.sprintpcs.com
$subject = Voicemail from +19545555555

$message = Click below to listen to your message:

  http://domain.com/twilio/recordings/19545555555-2013-10-12-22-57-03.wav

$headers = From:email2@domain.com

ブラウザでスクリプトを手動で呼び出すと、次のようになります。

$to = 9545555555@messaging.sprintpcs.com
$subject = Voicemail from 
$message = Click below to listen to your message:

  http://domain.com/twilio/recordings/-2013-10-12-23-04-37.wav

From:email2@domain.com
4

2 に答える 2

0

件名から「+」を削除しようとしましたが、成功しませんでしたが、件名から電話番号全体を削除すると、どの方法でも機能します。メールとテキストは適切に配信されます。私には意味がありません。たぶん、そのひどいウェブホスティングが私の人生を再び台無しにしています。

于 2013-10-13T03:20:24.750 に答える
0

おそらく from 文字列には、mail() 呼び出しを台無しにする悪い文字が含まれていますが、透過的にエコーします。mail() に入れる前に文字列をきれいにしてみてください。

何かのようなもの:

$subject= preg_replace("/[^a-zA-Z0-9]+/", "", $_REQUEST['From']);
于 2013-10-16T01:17:08.850 に答える