【问题标题】:PHP: mail() function doesn't work on long html messagesPHP:mail() 函数不适用于长 html 消息
【发布时间】:2010-09-30 17:02:17
【问题描述】:

这是我的代码:

    $message = '
    <html>
    <body>
    <table>
    <tr>
    <td>
    <img src=http://www.mdrnfx.com/mail_ust.jpg>
    </td>
    </tr>
    <tr>
    <td>
    <br>
    <div align=justify>
    <p>
    <strong>Bugün  demonuzun 2. günü…</strong>
    <br />Öncelikle  bizi tercih ettiğiniz için teşekkür ederiz.
    <br />Forex  piyasasını tanıma ve öğrenme aşamasında mısınız?
    <br />Platformun  kullanımı konusunda desteğe mi ihtiyaç duyuyorsunuz?
    <br />Dilediğiniz  saat için uzaktan bağlantıya geçerek, size yardımcı olmaktan memnuniyet  duyacağımızı bilmenizi isterim.
    <br />Bu  yönde bir talebiniz var ise lütfen aşağıdaki butonu tıklayın, dilediğiniz zaman  sizi arayalım.
    <br />Evet  – hayır
    <br />Evet  ise;
    <br />Sizinle  ne zaman iletişime geçelim : …………………..
    </p>
    <p>
    Aklınıza  takılan her konuda dilediğiniz; zaman bizimle temasa geçebilirsiniz…
    </p>
    <p>
    Saygılarımla
    <br />
    <b>' . $_SESSION['adminName'] . '</b>
    <br />Tel:<b> 0216 545 48 44</b>
    <br />Msn:<b>' . $_SESSION['adminMsn'] . '</b>
    </p>
    Skype: <b>' . $_SESSION['adminSkype'] . '</b>
    </div>
    <br>
    </td>
    </tr>
    <tr>
    <td>
    <img src=http://www.mdrnfx.com/mail_alt.jpg>
    </td>
    </tr>
    </table>
    </body>
    </html>
    ';  
    $subject = "ModernFx - 2. Demo Gününüz";
    $name = "ModernFx";
    $gonderen = $_SESSION['adminMail'];
    $mailler = $_POST['mailler'];
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    $email = explode("\n", $mailler);
    unset($email[sizeof($email)-1]);;
    //$headers .= "From: ".$name." <".$gonderen.">";
    echo $message;
    echo $headers;
    $i = 0;
    $count = 1;
    while( $i <= (sizeof($email)-1) )
    {
          if( mail($email[$i], $subject, $message, $headers) )
          {
            echo " $count > <b>".$email[$i]."</b> <font color=green>Adresine Teslim Etti...</font><br><hr>";
            $count++;
          }
          else 
          echo " <b>".$email[$i]."</b> <font color=red>Hata gitmedi</font><br><hr>";
          $i++;
    }

它也不适用于//$headers .= "From: ".$name." &lt;".$gonderen."&gt;"; 行。 错误报告和显示错误在 php.ini 中打开并设置为 -1。

有什么帮助吗?

【问题讨论】:

  • 不确定是否相关,但unset($email[sizeof($email)-1]);; 有两个分号。
  • 一个额外的分号不应该引起任何问题。错误是在任何大小的消息上还是仅在这个特定的消息上?

标签: php html email


【解决方案1】:

更好的是,使用 MIME PEAR 并为自己节省很多麻烦和时间...

http://pear.php.net/package/Mail_Mime/redirected

【讨论】:

    【解决方案2】:

    这是因为字符集和dreamweaver。我检查了裸文件,字符被弄乱了。所以,问题是dreamweaver,检查编码,它说西欧..不,应该是ISO-8859-9或UTF-8..所以,我选择了UTF-8并重新输入,你去!

    【讨论】:

      【解决方案3】:

      这是我的代码,我一直用它来发送电子邮件,你可以试试

      <?
      
      $sendTo   = $uemail;
      $subject  = "Email Subject";
      $headers  = "From: Name<noreply@name.com>\r\n";
      $headers .= "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/html; charset=utf-8\r\n";
      $message  = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                  <html xmlns="http://www.w3.org/1999/xhtml">
                  <head>
                  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                  </head>
                  <body>
      
                  </body>
                  </html>';
      
      mail($sendTo, $subject, $message, $headers);
      
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多