Php 通过SMTP发送带有Codeigniter 3.0.3的电子邮件

Php 通过SMTP发送带有Codeigniter 3.0.3的电子邮件,php,codeigniter,email,ubuntu,smtp,Php,Codeigniter,Email,Ubuntu,Smtp,我的email.php位于config/文件夹中: $config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp.gmail.com'; $config['smtp_port'] = '465'; $config['smtp_user'] = 'gmfernandes@[domain].com'; $config['smtp_pass'] = '[password]'; $config['mailtype'] = 'html'; $conf

我的
email.php
位于
config/
文件夹中:

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'gmfernandes@[domain].com';
$config['smtp_pass'] = '[password]';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n";
我的
电子邮件()
方法:

public function email()
{
    $from_name = $this->input->post('nome_email');
    $from_email = $this->input->post('email_email');
    $to = 'gmfernandes@[domain].com';
    $subject = 'Testing';
    $message = $this->input->post('proposta_email');

    $this->email->from($from_email, $from_name);
    $this->email->to($to);
    $this->email->subject($subject);
    $this->email->message($message);

    if ($this->email->send()) {
        echo 'Sent!';
    } else {
        echo $this->email->print_debugger();
    }

    die;
}
My
autoload.php

$autoload['libraries'] = array('database', 'session', 'form_validation', 'email');
我正在努力使这一切顺利进行。我花了几个小时寻找解决方案,但没有一个能帮到我。多次删除并安装了
sendmail
postfix
,尝试使用默认配置,但什么都没有。这对我不起作用

现在,显示的消息如下:

hello: F

The following SMTP error was encountered: F
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.

User-Agent: CodeIgniter
Date: Mon, 11 Jan 2016 18:11:54 -0200
From: "Gabriel" <mfgabriel@[domain].com>
Return-Path: <mfgabriel@[domain].com>
To: gmfernandes@[domain].com
Subject: =?UTF-8?Q?Testing?=
Reply-To: "mfgabriel@[domain].com" <mfgabriel@[domain].com>
X-Sender: mfgabriel@[domain].com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <56940c8a3846e@[domain].com>
Mime-Version: 1.0

Content-Type: multipart/alternative; boundary="B_ALT_56940c8a384c8"

This is a multi-part message in MIME format.
Your email application may not support this format.

--B_ALT_56940c8a384c8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Teste


--B_ALT_56940c8a384c8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Teste

--B_ALT_56940c8a384c8--

您使用端口465,这意味着SSL

$config['smtp_host'] = 'ssl://smtp.gmail.com';

完成了。成功了。我必须允许从我的帐户>登录和安全配置中不太安全的应用程序进行访问,并按照Schellingerht所说的做。

尝试
ssl://smtp.googlemail.com
而不是
smtp.gmail.com

$config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'xxx',
    'smtp_pass' => 'xxx',
    'mailtype'  => 'html', 
    'charset'   => 'iso-8859-1'
);

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

$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');

$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

$this->email->send();
查看论坛:


检查此答案:

@GabrieIMF与我的答案相同,请尝试使用
ssl://smtp.googlemail.com
$config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'xxx',
    'smtp_pass' => 'xxx',
    'mailtype'  => 'html', 
    'charset'   => 'iso-8859-1'
);

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

$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');

$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

$this->email->send();
function Email()
{
        parent::Controller();   
            $this->load->library('email');
}

function index()
{
    $config['protocol']    = 'smtp';
    $config['smtp_host']    = 'ssl://smtp.gmail.com';
    $config['smtp_port']    = '465';
    $config['smtp_timeout'] = '7';
    $config['smtp_user']    = 'mygmail@gmail.com';
    $config['smtp_pass']    = '*******';
    $config['charset']    = 'utf-8';
    $config['newline']    = "\r\n";
    $config['mailtype'] = 'text'; // or html
    $config['validation'] = TRUE; // bool whether to validate email or not      

    $this->email->initialize($config);


    $this->email->from('mygmail@gmail.com', 'myname');
    $this->email->to('target@gmail.com'); 

    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');  

    $this->email->send();

    echo $this->email->print_debugger();

     $this->load->view('email_view');

   }