Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Mudança no corpo do email

Como eu faço para, ao enviar um email, no campo que aparece o endereço de email que enviou, apareça o nome da pessoa antes? Por exemplo: no-reply@host.com.br para Fulano no-reply@host.com.br Minha função que envia email é a seguinte:

<?php
private function enviarEmail( $contato_id )
    {
        $formulario = $this->formulario->row();

        if( $formulario->email_send == 'sim' )
        {
            // $configEmail = array(
            //     'mailtype'=>'html'
            // );

            $configEmail = array(
                'mailtype'=>'html',
                'protocol'=>'smtp',
                'smtp_host'=>'enviosites.com.br',
                'smtp_user'=>'usuario',
                'smtp_pass'=>'m25GC',
                'smtp_port'=>'25'
            );

            $this->ci->load->library('email', $configEmail);



            if( !empty( $formulario->email_to ) )
            {
                $this->filters['email_to'][] = $formulario->email_to;

                if( !empty( $formulario->email_cc ) )
                    $this->filters['email_cc'][] = $formulario->email_cc;

                if( !empty( $formulario->email_bcc ) )
                    $this->filters['email_bcc'][] = $formulario->email_bcc;

                if( !empty( $formualrio->email_from ) )
                    $this->filters['email_from'][] = $formualrio->email_from;

                $email_to = isset($this->filters['email_to']) ? implode(',',$this->filters['email_to']) : '' ;
                $email_cc = isset($this->filters['email_cc']) ? implode(',',$this->filters['email_cc']) : '' ;
                $email_bcc = isset($this->filters['email_bcc']) ? implode(',',$this->filters['email_bcc']) : '';

                $this->ci->email->to($email_to);

                if( empty( $formulario->email_from ) ){

                $this->ci->email->from('fale@site.com.br');
                $this->ci->email->reply_to( isset($_POST['email']) ? $_POST['email'] :'fale@site.com.br' );
                }

                else{

                    $this->ci->email->from( $formulario->email_from );
                    $this->ci->email->reply_to( isset($_POST['email']) ? $_POST['email'] : $formulario->email_from);
                }

                if( !empty( $email_cc ) )    
                    $this->ci->email->cc($email_cc);

                if( !empty( $email_bcc ) )
                    $this->ci->email->bcc($email_bcc); 

                $contato                 = $this->selecionar( $contato_id )->row();
                $data['formulario']     = $formulario;
                $data['contato']         = $contato;
                $data['fieldsTemplate'] =  $this->ci->formularios->unserialize( $formulario->fields_template );
                $data['fieldsContato']  =  $this->ci->contatos->unserialize( $contato->fields );

                $layoutOld = $this->ci->layout->getLayout();
                $this->ci->layout->setLayout('template_email');

                $this->ci->email->subject( !empty($formulario->email_assunto) ? $formulario->email_assunto : 'Contato - '.$formulario->titulo );
                $this->ci->email->message( $this->ci->layout->view('email', $data, TRUE ) );

                $anexos = $this->ci->mediaModel->selecionarAnexos( $contato_id );

                if( $anexos->num_rows() > 0 )
                {
                    foreach ($anexos->result() as $file )
                    {
                        $this->ci->email->attach( $file->path );
                    }
                }

                $this->ci->email->send();

                $this->ci->layout->setLayout($layoutOld);
            }
        }
    }
?>
1 resposta
solução

Bom dia Iuri,

Tenta algo deste tipo:

$email_from = $full_name.'<'.$email_from.'>';

Adapta teu código