【问题标题】:Mail Delivery failed when using anchor element in HTML email using PHP使用 PHP 在 HTML 电子邮件中使用锚元素时邮件传递失败
【发布时间】:2017-01-03 09:53:03
【问题描述】:

当我使用 PHP 从 Gmail 发送任何电子邮件时,我使用 pear lib 发送电子邮件并遇到三个问题。

1) 我在电子邮件中收到 HTML 代码。

2) 如果我使用任何锚元素,则电子邮件传递失败。// 没有锚元素它正在工作。

3) 锚元素链接在 iPhone 中不起作用。// 对于 iPhone 我试过了

require_once "mail/Mail.php";
  $to = $email;
  $from = 'user@gmail.com';
  $subject = 'Test!';
  $body = "<html><head><title>HTML email</title></head>
        <body>
        <a href='domain.com/changepassword.php?user_id=" .$User_id1."'>Create your password here</a>
        </body>
        </html>";// HTML code is display in email
       $headers = array(
           'From' => $from,
            'To' => $to,
            'Subject' => $subject
        );
   $smtp = Mail::factory('smtp', array(
                'host' => 'ssl://smtp.gmail.com',
                'port' => '465',
                'auth' => true,
                'username' => 'user@gmail.com',
                'password' => '******'
            ));

    $mail = $smtp->send($to, $headers, $body);
        if (PEAR::isError($mail)) {
            echo('<p>' . $mail->getMessage() . '</p>');
        } else {
            echo('<p>Message successfully sent!</p>');
        }

【问题讨论】:

  • 你说的这个锚标签链接在哪里?
  • 我在 $body 中添加了。如果我删除它正在工作但也得到 html 代码

标签: php html email html-email


【解决方案1】:

您必须在 html 的标头中定义。希望你能在这里得到解决方案:how to send html mails using PEAR mail

在链接中添加 http 使其适用于所有情况。

我使用 phpmailer,它总是很好。你可以试试这个。 https://github.com/PHPMailer/PHPMailer

【讨论】:

  • 感谢 Mehedee 先生的回复,在我尝试 PHP 邮件程序之前,我的所有电子邮件都进入了垃圾邮件
  • 使用 smtp 服务器解决了这个问题。您可以要求您的服务器管理员获取 smtp 服务器,或者您可以使用 pepipost.com 等第三方 smtp,但需要时间来批准。
  • 我正在使用 Gmail 使用 PHP 发送邮件
  • 这里使用了强过滤 - 白名单、红名单电子邮件。在某些情况下,垃圾邮件过滤器会将 gmail 视为垃圾邮件。您可以在此处测试您的电子邮件。那你就明白了mail-tester.com
  • Mr.Mehedee 你可以在这里查看我的 PHPMailer 代码stackoverflow.com/questions/41361169/…
【解决方案2】:

在你的$body 中试试这个怎么样。另请记住,$body 行(声明了DOCTYPE 的位置)之后不应有空格。

我在 SendGrid 和 PHPMailer 上使用了这个。

$body = <<<EOD
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    Your content here
  </body>
</html>
EOD;

【讨论】:

  • 感谢尼克的回复,我试过了,但仍然在电子邮件中收到 HTML 代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
相关资源
最近更新 更多