电子邮件文件使用php邮件功能发送两次电子邮件

时间:2012-12-27 05:27:07

标签: gd html-email php php-gd

我的三个问题,尝试了不同的组合,没有结果,谷歌搜索但很少或没有帮助 -

  1. 我收到两次电子邮件,将myemail@emailserver.com更改为电子邮件ID以查看结果。
  2. 执行此文件时,我正在获取图像,但我希望文本“已发送电子邮件”。
  3. 传递带有标记的完整HTML内容,而不是通过电子邮件进行HTML呈现。
  4. 我的工作代码 - >

    <?php
        header('Content-type: image/jpeg');
        $jpg_image = imagecreatefromjpeg('http://dummyimage.com/600x400/f5f5f5/fff.jpg');
        $black = imagecolorallocate($jpg_image, 1, 1, 1);
        $font_path = 'myfont/arial.ttf';
        $text = "Swapnesh Sinha!";
        imagettftext($jpg_image, 24, 0, 175, 85, $black, $font_path, $text);
        $tip = imagejpeg($jpg_image);
        $imageData = base64_encode($tip);
        //$src = 'data: '.mime_content_type($jpg_image).';base64,'.$imageData;
        imagedestroy($jpg_image);
    ?>
    
    <html>
    <head></head>
    <body>
    <p>
    
    <?php
    
    $to = 'myemail@emailserver.com';
    $subject = "Thisa is a email test to find image work";
    $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" />
    <title>MY SITE TITLE</title>
    </head><body><table><tr><td>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</td></tr><tr><img src="'.'http://mysiteurl/addtext.php'.'" /></tr></table></body></html>';
    $headers = 'From: myemail@emailserver.com' . "\r\n" .
               'Reply-To: myemail@emailserver.com' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();
    
    $bool = mail($to, $subject, $message, $headers);
    
    if($bool)
    echo "Email Sent"; 
    else
    echo "Email Not Sent";
    
    ?>
    
    </body>
    </html>
    

    注意 - 在<img src="'.'http://mysiteurl/addtext.php'.'" />

    http://mysiteurl/addtext.php与上述所有内容相同。

1 个答案:

答案 0 :(得分:2)

我要做的第一件事是检查你的apache / IIS日志,以确保没有调用两次URL(只是一个健全性检查)。

如果你添加到OP的PHP页面是http://mysiteurl/addtext.php,那么它会被调用两次,一旦渲染HTML,那么浏览器会在渲染时再次调用它<img ...>代码。

要解决此问题,您需要将其拆分为两个PHP文件(推荐),或者传递GET参数以切换图像处理。

您还需要添加$headers .= "Content-type: text/html\r\n";,以便电子邮件呈现为html而不是纯文本。