【问题标题】:Swift mailer attachmentSwift 邮件附件
【发布时间】:2013-12-23 08:56:21
【问题描述】:

我在 yii 中尝试过两次电子邮件扩展。

1.YII-MAIL
2.PHP MAILER

现在我想试试 swift mailer。我已经从这里 http://swiftmailer.org/download 下载了包,并将它添加到 YII 的扩展文件夹中。

我有一个表格,其中包含姓名、电子邮件、电话和附件字段。 我正在将上传的文件保存到图像文件夹下名为 resumes 的文件夹中,同时我正在发送一封包含所有详细信息的邮件以及作为附件上传的文件。但是在单击创建按钮时我收到此错误

 include(Swift_Message.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory

这是我目前尝试过的控制器操作

public function actionCreate()
{
            $this->layout='static_inner';

    $model=new LriCareer;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

            if(isset($_POST['LriCareer']))
    {
                    $rnd = rand(0,9999);
        $model->attributes=$_POST['LriCareer'];
                    if($uploadedFile=CUploadedFile::getInstance($model,'career_resume'))
                    {
                        $fileName = "{$rnd}-{$uploadedFile}";  // random number + file name
                        $model->career_resume = $fileName;
                        if($model->save())
                        {
                            $uploadedFile->saveAs(dirname(Yii::app()->basePath) . '/images/resumes/'.$fileName);
                            $message = new YiiMailMessage;
                            $first_name="hello";
                            $message->setBody($first_name);
                            $message->subject = 'My Subject';
                            $message->addTo('fazeela.ma@longriverinfotech.com');
                            $message->from = Yii::app()->params['adminEmail'];   
                            $uploadedFile = CUploadedFile::getInstanceByName('fileupload'); // get the CUploadedFile
                            $uploadedFileName = $uploadedFile->tempName; // will be something like 'myfile.jpg'
                            $swiftAttachment = Swift_Attachment::fromPath($uploadedFileName);
                            $message->attach($swiftAttachment);
                            }
                               }
                    else
                    {
                         if($model->save())
            $this->redirect(array('view','id'=>$model->career_id));
                    }}

    $this->render('create',array(
        'model'=>$model,
    ));


    }

我没有在文件夹中看到 Swift_message.php。任何人都可以查看问题

【问题讨论】:

    标签: php email yii swiftmailer


    【解决方案1】:

    Yii 框架有一个Swiftmailer Extension。我个人在几个项目中使用过,它很棒。

    如何附加文件:

    $message = new YiiMailMessage;
    $message->setBody($first_name);
    $message->subject = 'My Subject';
    $message->addTo('my@domain.com');
    $message->from = Yii::app()->params['adminEmail'];   
    $uploadedFileName = CUploadedFile::getInstance($model,'career_resume'); 
    $uploadedFileName = $uploadedFile->tempName; // will be something like 'myfile.jpg'
    $swiftAttachment = Swift_Attachment::fromPath($uploadedFileName);
    $message->attach($swiftAttachment);
    

    【讨论】:

    • 能否请您查看我编辑的帖子,我不确定如何在此处按名称添加上传的文件,$uploadedFile = CUploadedFile::getInstanceByName('fileupload'); // 请获取 CUploadedFile
    • $uploadedFileName = CUploadedFile::getInstance($model,'career_resume') 适用于您的情况。
    • 它似乎不起作用,我在我的联系我们页面中使用同一个发送邮件。所以我在 2 个实例中使用这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多