通过php从gmail发送邮件时添加表单附件

通过php从gmail发送邮件时添加表单附件,php,gmail,bulk-mail,Php,Gmail,Bulk Mail,我试图在使用php从gmail发送邮件时添加Atachment。但它显示错误…它说无法访问文件:hai.jpg 下面是我使用的代码 gmail.php <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>PHPMailer - GMail SMTP test</

我试图在使用php从gmail发送邮件时添加Atachment。但它显示错误…它说
无法访问文件:hai.jpg

下面是我使用的代码

gmail.php

 <!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>PHPMailer - GMail SMTP test</title>
</head>
<body>
<?php
 access to that
date_default_timezone_set('Etc/UTC');

require '../Mail/class.phpmailer.php';

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug  = 2;
$mail->Debugoutput = 'html';
$mail->Host       = 'smtp.gmail.com';
$mail->Port       = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth   = true;
$mail->Username   = "name@gmail.com";
//Password to use for SMTP authentication
$mail->Password   = "passwrd";
$mail->SetFrom($_POST['from'], $_POST['from_name']);
$mail->AddReplyTo($_POST['from'],$_POST['from_name']);
$mail->AddAddress($_POST['to'],$_POST['to_name']);
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->MsgHTML($_POST['message']);
$mail->AltBody = 'This is a plain-text message body';
$mail->AddAttachment($_POST['attachment'],'application/octet-stream');
if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
?>
</body>
</html>

PHPMailer-GMail SMTP测试
index.html

<form action="gmail.php" method="POST">
    <div>
        From Name:<input type="text" name="from_name" />
        From:<input type="text" name="from" />

    </div>
    <div>
        To Name:<input type="text" name="to_name" />
        To:<input type="text" name="to" />
    </div>
    <div>
        Message:<textarea  name="message"></textarea>
    </div>
    <div>
        Attachment:<input type="file" name="attachment" />
    </div>
    <input type="submit" value ="Submit"/>
</form>

发件人姓名:
发件人:
命名:
致:
信息:
附件:

我不知道我在这里的做法是否正确。有人能给我指点一下吗?

将文件从客户端浏览器上传到服务器并不是那么简单


将文件从客户端浏览器上传到服务器并不是那么简单


我注意到您的代码中缺少两个iTen:

  • php变量的使用,该变量存储有关上载文件的信息
  • 在表单元素中使用属性,这是随表单上载文件所必需的
  • 因此,您的代码必须处理这两个iten

    您的表单将如下所示:

    <form action="gmail.php" method="POST" enctype="multipart/form-data">
        <div>
            From Name:<input type="text" name="from_name" />
            From:<input type="text" name="from" />
    
        </div>
        <div>
            To Name:<input type="text" name="to_name" />
            To:<input type="text" name="to" />
        </div>
        <div>
            Message:<textarea  name="message"></textarea>
        </div>
        <div>
            Attachment:<input type="file" name="attachment" />
        </div>
        <input type="submit" value ="Submit"/>
    </form>
    

    我注意到您的代码中缺少两个iten:

  • php变量的使用,该变量存储有关上载文件的信息
  • 在表单元素中使用属性,这是随表单上载文件所必需的
  • 因此,您的代码必须处理这两个iten

    您的表单将如下所示:

    <form action="gmail.php" method="POST" enctype="multipart/form-data">
        <div>
            From Name:<input type="text" name="from_name" />
            From:<input type="text" name="from" />
    
        </div>
        <div>
            To Name:<input type="text" name="to_name" />
            To:<input type="text" name="to" />
        </div>
        <div>
            Message:<textarea  name="message"></textarea>
        </div>
        <div>
            Attachment:<input type="file" name="attachment" />
        </div>
        <input type="submit" value ="Submit"/>
    </form>
    

    最好的方法是上传文件并在邮件中链接。表单元素中缺少enctype属性。例如,$\u POST['attachment']是您正在上载的文件吗?如果是这样的话,那么这不是php处理文件上传的方式。请告诉我怎么做。。。!!!最好的方法是上传文件并在邮件中链接。表单元素中缺少enctype属性。例如,$\u POST['attachment']是您正在上载的文件吗?如果是这样的话,那么这不是php处理文件上传的方式。请告诉我怎么做。。。!!!此代码的附件正在运行,但不是我选择的附件。。它的格式为
    application/octect stream.dat
    Right。你介意传递一个指向phpmailer文档的链接吗?有了这个代码附件,但不是我选择的那个。。它的格式为
    application/octect stream.dat
    Right。您介意传递一个指向phpmailer文档的链接吗?