Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件模式不起作用_Php_Mailer - Fatal编程技术网

PHP邮件模式不起作用

PHP邮件模式不起作用,php,mailer,Php,Mailer,我有一个问题,因为我通过php的文件尝试不起作用。我尝试了不同的教程。我最后一次尝试的代码如下: if($isValid === true) { // Submit Mail $mail = new SimpleMail(); $mail->setTo(YOUR_EMAIL_ADDRESS, YOUR_COMPANY_NAME) ->setSubject('Neue Mietanfrage') ->setFrom(htmlspecial

我有一个问题,因为我通过php的文件尝试不起作用。我尝试了不同的教程。我最后一次尝试的代码如下:

if($isValid === true) {

    // Submit Mail
    $mail = new SimpleMail();
    $mail->setTo(YOUR_EMAIL_ADDRESS, YOUR_COMPANY_NAME)
    ->setSubject('Neue Mietanfrage')
    ->setFrom(htmlspecialchars($_POST['email-address']), htmlspecialchars($_POST['first-name'].' '.$_POST['last-name']))
    ->addGenericHeader('X-Mailer', 'PHP/' . phpversion())
    ->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')
    ->setMessage(createMessage($_POST))
    ->setWrap(100);

    $mail->send();


    // Submit Client Mail
    $mailClient = new SimpleMail();
    $mailClient->setTo(htmlspecialchars($_POST['email-address']), htmlspecialchars($_POST['first-name'].' '.$_POST['last-name']))
    ->setSubject('Ihre Mietanfrage bei '.YOUR_COMPANY_NAME)
    ->setFrom(YOUR_EMAIL_ADDRESS, YOUR_COMPANY_NAME)
    ->addGenericHeader('X-Mailer', 'PHP/' . phpversion())
    ->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')
    ->setMessage(createClientMessage($_POST))
    ->setWrap(100);

        $mailClient->send();

    $result = array(
        'result' => 'success', 
        'msg' => array('Ihre Reservierung wurde erfolgreich übermittelt.')
        );

    echo json_encode($result);

} else {
    $result = array(
        'result' => 'error', 
        'msg' => $isValid
        );

    echo json_encode($result);
}

//*** Attachment ***//  
if($_FILES["fileAttach"]["name"] != "")  
{  
$strFilesName = $_FILES["fileAttach"]["name"];  
$strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"])));  
$strHeader .= "--".$strSid."\n";  
$strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n";  
$strHeader .= "Content-Transfer-Encoding: base64\n";  
$strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";  
$strHeader .= $strContent."\n\n";  
}




<input type="file" name="fileAttach" id="fileAttach" hidden>

您没有在任何地方将文件添加到邮件对象

提供向电子邮件添加附件的方法
addAttachment

我正在用所需的行扩展您的代码:

// Submit Mail
$mail = new SimpleMail();
$mail->setTo(YOUR_EMAIL_ADDRESS, YOUR_COMPANY_NAME)
    ->setSubject('Neue Mietanfrage')
    ->setFrom(htmlspecialchars($_POST['email-address']), htmlspecialchars($_POST['first-name'].' '.$_POST['last-name']))
    ->addGenericHeader('X-Mailer', 'PHP/' . phpversion())
    ->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')
    ->setMessage(createMessage($_POST))
    ->setWrap(100);

// add the following lines to your code
if (isset($_FILES['fileAttach']['tmp_name'])) {
    $mail->addAttachment(
        $_FILES['fileAttach']['tmp_name'],
        $_FILES['fileAttach']['name']
    );
}

$mail->send();

SimpleEmail将自行加载文件内容。

请解释“无法工作”您是否在任何地方遇到错误?你有没有仔细分析过这封邮件?哦,对不起。。文件没有发送,因此我没有收到任何尝试。所以上传的文件不会发生任何事情不要使用mail(),使用phpmailer,为自己省去很多痛苦我不明白。这是你的真实代码吗?如果是,那么难怪您的文件没有被发送,您正在设置
$strHeader
并将上载文件的内容添加到其中,但您从未使用此变量将标题添加到邮件对象中!你想学习哪一个教程?我试过了,但不幸的是,电子邮件现在根本无法发送。我添加了javascript。。该脚本可能是电子邮件无法发送的原因吗?@TimN您在使用此答案中的代码时有任何错误吗@naitsirch在
if
语句中没有关闭一个括号。因此,该行的正确代码应该是
if(isset($\u FILES['fileAttach']['tmp\u name']){
@EhsanT谢谢你的提示。我已经添加了缺少的括号。