-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>

それは、実際にメールに添付された画像を送信したい場合です。一方、メール本文自体に画像コードが埋め込まれたメールを送信したい場合は、PHPMailer でもサポートされている HTML メールを送信する方法を探していると思います。これを行う方法の例を次に示します (画像自体はパブリックにアクセスできる必要があることに注意してください)。

<?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 に答える