Приложение Swift mailer

Я пробовал расширения электронной почты в yii дважды.

1.YII-MAIL
2.PHP MAILER

Теперь я хотел бы попробовать быструю почтовую программу. Я скачал пакет отсюда http://swiftmailer.org/download и добавил его в папку расширений в YII.

Здесь у меня есть форма с полями для имени, электронной почты, телефона и вложения. Я сохраняю файл, загруженный в папку с именем резюме в папке с изображениями, в то же время я отправляю письмо со всеми деталями вместе с загруженным файлом в виде вложения. Но при нажатии кнопки «Создать» я получаю эту ошибку

 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('[email protected]');
                            $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 в папке. Может ли кто-нибудь разобраться в проблеме?


person Fazeela Abu Zohra    schedule 06.12.2013    source источник


Ответы (1)


Существует расширение Swiftmailer для Yii Framework. Я лично использовал в нескольких проектах, и это потрясающе.

Как прикрепить файлы:

$message = new YiiMailMessage;
$message->setBody($first_name);
$message->subject = 'My Subject';
$message->addTo('[email protected]');
$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);
person Bhargav    schedule 06.12.2013
comment
не могли бы вы просмотреть мой отредактированный пост, я не уверен, как добавить сюда загруженный файл по имени, $uploadedFile = CUploadedFile::getInstanceByName('fileupload'); // получите CUploadedFile, пожалуйста - person Fazeela Abu Zohra; 06.12.2013
comment
$uploadedFileName = CUploadedFile::getInstance($model,'career_resume') Будет работать в вашем случае. - person Bhargav; 06.12.2013
comment
Кажется, это не работает, я использую тот же самый на моей странице контактов для отправки почты. Так что я использую этот в 2 случаях. - person Fazeela Abu Zohra; 06.12.2013