CodeIgniter 附加电子邮件功能问题

问题描述 投票:0回答:1

如果您帮助我使用以下代码,我将不胜感激,因为我遵循了正确的步骤,但仍然没有收到带有附件的电子邮件。

如果你们中有人找到正确的问题,我们将不胜感激。

这是电子邮件的 smtp 设置:

$config = array(
                "protocol"   => "SMTP",
                "smtp_host"  => "domainname.com",
                "smtp_port"  => "465",
                "smtp_timeout"  => "7",
                "smtp_user"  => '[email protected]',
                "smtp_pass"  => "password", 
                "starttls"   => TRUE,
                "charset"    => "iso-8859-1",
                "mailtype"   => "html", 
                "wordwrap"   => TRUE,
                "newline"    => "\r\n",
                "validate"   => FALSE,
                "smtp_keep_alive" => TRUE
            );
            
            $this->load->library('email', $config);

并且有发送电子邮件设置,请注意,我已上传文件并通过

DOCUMENT_ROOT
获取文件路径,但仍然没有收到带有附件的电子邮件,仅提供包含内容的空电子邮件

$this->email->from($Data['Email'], $Data['Name']);
                    $this->email->to('[email protected]');
                    $this->email->subject(sprintf('Email Send by - %s', $Data['Name']));
                    $this->email->message(sprintf('
                        Request ID: %s <br />
                        Name: %s <br />
                        Email: %s<br />
                        Colors: %s <br />
                        Quantity: %s<br />
                        Phone: %s<br />
                        Message: %s <br />
                        Target Price: %s'
                    , $PK,$Data['Name'], $Data['Email'], $Data['Colors'], $Data['Quantity'], $Data['Phone'], $Input->post('Config')['Message'],$Data['TargetPrice']));
                    //attachment
                    if($Row){
                         $ImagePath = GetFileRootPath($Row->EntryDate,'IMG',false,$Row->Image);;
                         // this function is returning this path - /home/User/public_html/domainname.com/resources/upload/img/2023/11/24/download.jpg
                         if($ImagePath){
                            $this->email->attach($ImagePath);
                            
                         }
                    }
                    
                    if($this->email->send()){
                        SetMessage('ENTRYSUCCESS');
                    } else {
                        SetMessage('ENTRYFAILED');
                    }
                
                } else{
                    SetMessage('ENTRYFAILED');
                }

下面再次提到 GetFileRootPath 函数的返回,以便于阅读: /home/User/public_html/domainname.com/resources/upload/img/2023/11/24/download.jpg

这就是我在附件功能中发送的内容,但仍然收到没有附件的电子邮件。

php email codeigniter-3 email-attachments
1个回答
0
投票

您是否记录了路径以确保其已设置?

if($ImagePath){
    log_message($ImagePath);
    $this->email->attach($ImagePath);
}

除非您在其他地方检查,否则我建议检查以确保文件存在。

if(is_file($ImagePath)){
    $this->email->attach($ImagePath);
}

检查文件的权限,确保帐户用户有权访问该文件。

尝试附加一个简单的文本文件而不是图像文件,看看它是否与文件本身有关。接收服务器可能会将其删除。

顺便说一句,你这里多了一个分号:

$ImagePath = GetFileRootPath($Row->EntryDate,'IMG',false,$Row->Image);;
© www.soinside.com 2019 - 2024. All rights reserved.