-1

我正在使用 PHPmailer (http://phpmailer.worxware.com/) 类通过电子邮件发送表单信息。表格里面有这样的图像:

<form.....>

<div><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(42, 42); ?></div>


</form>

如何通过电子邮件发送该图像?谢谢你。

4

2 回答 2

2

使用该AddAttachment方法或撰写 HTML 邮件并将图像作为src链接包含在内。

附件:http
://code.google.com/a/apache-extras.org/p/phpmailer/wiki/AdvancedMail 链接: http ://code.google.com/a/apache-extras.org/p/phpmailer /wiki/基本邮件

于 2012-12-16T12:53:45.157 回答
0

除非您有一个文件输入字段,您可以通过该字段将图像上传到服务器,否则您将无法通过 PHPMailer(或任何其他方式)发送它。

<form>
    ...
    <input type="file" />
    ...
</form>

也就是说,如果您真的想发送附加到电子邮件的图像。另一方面,如果您想发送一封电子邮件,其中包含嵌入在电子邮件正文中的图像代码,那么我猜您正在寻找一种发送 HTML 电子邮件的方法,PHPMailer 也支持这种方法。这是一个示例,您将如何做到这一点(请注意,图像本身需要可公开访问)。

<?php
/**
* Sending an HTML email through PHPMailer and SMTP...
*/
require_once('PHPMailer.class.php');

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

try {
    $mail->CharSet = 'utf-8';
    $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->Host       = "smtp.example.com"; // sets the SMTP server
    $mail->Port       = 587;                    // set the SMTP port for the GMAIL server
    $mail->Username   = "user@example.com"; // SMTP account username
    $mail->Password   = "password";        // SMTP account password
    $mail->AddReplyTo('user@example.com', 'Sending User');
    $mail->AddAddress('user_2@example.com', 'Receiving User');
    $mail->SetFrom('user@example.com', 'Sending User');
    $mail->Subject = 'Image';
    $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
    $mail->MsgHTML('<html><body><img src="http://example.com/path_to_image.jpg" width="xxx" height="xxx" /></body></html>'));
    $mail->Send();
    echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
    echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
    echo $e->getMessage(); //Boring error messages from anything else!
}
?>

至于 HTML 电子邮件,它们有自己的一套规则和最佳实践。即,如果您打算做比发送图像更复杂的事情,您应该使用像这样的 CSS 内联器,避免使用诸如background-image等之类的东西。

于 2012-12-16T13:45:03.807 回答