问题
I can't send emails using mediatemple in codeigniter.I've checked the email password and smtp host and they are correct.
This is the error:
Severity: Notice
Message: fwrite() [function.fwrite]: send of 12 bytes failed with errno=10054 An existing connection was forcibly closed by the remote host.
Filename: libraries/Email.php
Line Number: 1846
This is my code: I have replaced sxxxxx.gridserver.com with my correct smtp.
function _sendEmail($from,$fromname,$to,$subject,$message){
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'sxxxxx.gridserver.com',
'smtp_port' => 465,
'smtp_user' => 'noreply@mywebsite.com',
'smtp_pass' => 'mypass'
);
$this->load->library('email',$config);
$this->email->set_newline("\r\n");
$this->email->from($from,$fromname);
$this->email->to($to);
$this->email->subject($subject);
$this->email->message($message);
$this->email->send();
}
Any help would be appreciated.
Edit : I have fixed this problem using port 25.
回答1:
You need to initialise the the config, see the codeigniter documentation for the email class.
Here is my example which works well...
function send_email($attributes) {
$this->load->library('email');
$this->email->set_newline("\r\n");
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'host';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'user@smtp.com';
$config['smtp_from_name'] = 'FROM NAME';
$config['smtp_pass'] = 'XXX';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n";
$config['mailtype'] = 'html';
$this->email->initialize($config);
$this->email->from($config['smtp_user'], $config['smtp_from_name']);
$this->email->to($attributes['to']);
$this->email->cc($attributes['cc']);
$this->email->bcc($attributes['cc']);
$this->email->subject($attributes['subject']);
$this->email->message($attributes['message']);
if($this->email->send()) {
return true;
} else {
return false;
}
}
回答2:
'smtp_crypto' => 'ssl',
Add this to your config
来源:https://stackoverflow.com/questions/10723404/mediatemple-cant-send-email-using-codeigniter