【问题标题】:PHP mail() - How to put an html link in an email? [duplicate]PHP mail() - 如何在电子邮件中添加 html 链接? [复制]
【发布时间】:2013-03-20 15:41:18
【问题描述】:

我正在通过 PHP 的 mail() 函数发送电子邮件。在消息中,我设置了一个如下所示的链接:

$message = "<a href='". $link. "'>" .$title. "</a>\n\n";

但是,当收到电子邮件时,电子邮件正文会显示 html 代码而不是标题作为超链接。我对html电子邮件不是很熟悉。我怎样才能达到我想要的目标?

【问题讨论】:

    标签: html php


    【解决方案1】:

    尝试加个header,让邮件客户端不相信是纯文本:

    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    

    PHP mail function manual:

    示例 #4 发送 HTML 电子邮件

    <?php
    // multiple recipients
    $to  = 'aidan@example.com' . ', '; // note the comma
    $to .= 'wez@example.com';
    
    // subject
    $subject = 'Birthday Reminders for August';
    
    // message
    $message = '
    <html>
    <head>
      <title>Birthday Reminders for August</title>
    </head>
    <body>
      <p>Here are the birthdays upcoming in August!</p>
      <table>
        <tr>
          <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
        </tr>
        <tr>
          <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
        </tr>
        <tr>
          <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
        </tr>
      </table>
    </body>
    </html>
    ';
    
    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    
    // Additional headers
    $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
    $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
    $headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
    $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
    
    // Mail it
    mail($to, $subject, $message, $headers);
    ?>
    

    【讨论】:

      【解决方案2】:

      请参阅http://php.net/manual/en/function.mail.phphttp://php.net/manual/en/function.mail.php的 PHP mail() 文档

      您需要在函数中指定 HTML 的内容类型。

      // To send HTML mail, the Content-type header must be set
      $headers  = 'MIME-Version: 1.0' . "\r\n";
      $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
      
      // Additional headers
      $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
      $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
      $headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
      $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
      
      // Mail it
      mail($to, $subject, $message, $headers);
      

      虽然通常建议避免单独使用 mail()。

      例如,您应该考虑使用 PHPMailer。

      【讨论】:

        【解决方案3】:

        您必须告诉电子邮件客户端电子邮件中有一个 HTML 部分。我会推荐像Swiftmailer 这样的东西来做这项工作,而不是自己做所有事情。

        【讨论】:

          猜你喜欢
          • 2019-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-15
          • 1970-01-01
          • 1970-01-01
          • 2017-11-22
          • 1970-01-01
          相关资源
          最近更新 更多