2017-06-23 6 views
-1

私は各ユーザーごとに別々のリンクを持つ電子メールを送信する必要があるユーザーのリストを持っています。データベースからのユーザーリストの動的コンテンツを含む電子メールを送信

マイメール - 親愛なるユーザー、

ここではいくつかのメッセージの内容。あなたの行動を確認するにはここをクリックしてください。

ユーザーのリストは以下の形式で自分のデータベースに保存している -

シニアません - ユーザーメール - リンク

私は以下のコードを試してみましたが、ページがロードと何のループに入ります起こる私はここで電子メールAPIを使用しようとしていますが、私は私の目標を達成するために他のアイデアを公開しています。

ob_start(); 
     error_reporting(E_ALL); 
     ini_set('display_errors', 1); 
     include_once("connect.php"); 
     $sql1 = "SELECT email FROM `tablename`"; 
     $result = mysqli_query($conn, $sql1); 
     if (mysqli_num_rows($result) > 0) { 
// output data of each row 
      while($row = mysqli_fetch_assoc($result)) { 
       $recipients = $row["email"]; 
       $url = $row["url"]; 
       try { 
        require_once 'SarvMTA_PHP/Sarv.php'; 
        $sarv = new Sarv('userid', 'apitoken', 
         'SarvTES_APP_DOMAIN'); 
        $smtp_user_name = "smtpusername"; 
        $message["html"] = " 
Please follow this link to confirm: .<a href='{$url}'>Click here </a>"; 
        $message["subject"] = " subject"; 
        $message["from_email"] = "TR <[email protected]>"; 
        $message["to"] = array(
         array("email" => $recipient['email'], "name" => $recipient['name'], "type" => "to") 
        ); 
        $message["headers"] = array("Reply-To" => "[email protected]", "X- 
Unique-Id" => "Id"); 
        $result = $sarv->messages->sendMail($smtp_user_name, $message); 
        print_r($result); 
       } catch (Sarv_Error $e) { 
// Sarv errors are thrown as exceptions 
        echo "A sarv error occurred: " . get_class($e) . " - " . $e->getMessage(); 
       } 
      } else { 
       echo "All mails sent ! Well done"; 
      } 
+0

ファーストあなたのメッセージを次のように修正してください "確認のためにこのリンクに従ってください:。 Click here ";次に$ url変数が定義されていますか?あなたのコードを少し修正してください。require_onceとループの中のオブジェクトを作成する必要はありません –

+0

あなたの質問を編集してコード内の空白行を取り除いてください。 –

+0

が変更を加えました。ページがhttp 500エラーを投げています – sgr459

答えて

0

コードにいくつか問題があります。

これはどこですか? $ recipients = $ row ["email"];

は$受信者変数が定義されていますか? $受信者[ 'メール']と$受け手[ '名前']

我々は明らかにあなたがあなたのSQLのSELECT文

名前が欠落している、$受信者= $行を前提とした場合このように見えるためにあなたのSQL文を修正し

select name,email,url from `tablename` 
(仮定 名欄は、テーブルに存在します)

次はループの外でこれらの2行を移動し、

$message["html"] = "Please follow this link to confirm: .<a href='{$url}'>Click here </a>"; 

また

$recipient = $row; 
//instead of 
$recipients = $row['email']; 

は、その後、あなたのメッセージを修正置き換える(かもしれ後if文)すべての

require_once 'SarvMTA_PHP/Sarv.php'; 
$sarv = new Sarv('userid', 'apitoken', 'SarvTES_APP_DOMAIN'); 
+0

追加するには "else" while文はif文の代わりにループしますが、そのメッセージはelseを必要とせずに完了した後に置くことができます。 – TimBrownlaw

関連する問題