so korrigieren Sie die Methode zum senden von email mit codeigniter
Hey guy, ich bin versucht, senden Sie eine Mail mit codeiginiter mail-Funktion Klasse, aber ich fand ein Problem mit smtp-Protokoll. Ich gmail smtp-Protokoll.
Ich ausgeführt wird dies in der lokalen Maschine.
Ich bin mit Xampp 1.7.4 Paket, andI versucht haben, die Einstellung wie unten :
function index()
{
$config['protocol'] = 'smtp'; //mail, sendmail, or smtp The mail sending protocol.
$config['smtp_host'] = 'smtp.gmail.com'; //SMTP Server Address.
$config['smtp_user'] = '[email protected]'; //SMTP Username.
$config['smtp_pass'] = '123'; //SMTP Password.
$config['smtp_port'] = '25'; //SMTP Port.
$config['smtp_timeout'] = '5'; //SMTP Timeout (in seconds).
$config['wordwrap'] = TRUE; //TRUE or FALSE (boolean) Enable word-wrap.
$config['wrapchars'] = 76; //Character count to wrap at.
$config['mailtype'] = 'html'; //text or html Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don't have any relative links or relative image paths otherwise they will not work.
$config['charset'] = 'utf-8'; //Character set (utf-8, iso-8859-1, etc.).
$config['validate'] = FALSE; //TRUE or FALSE (boolean) Whether to validate the email address.
$config['priority'] = 3; //1, 2, 3, 4, 5 Email Priority. 1 = highest. 5 = lowest. 3 = normal.
$config['crlf'] = "\r\n"; //"\r\n" or "\n" or "\r" Newline character. (Use "\r\n" to comply with RFC 822).
$config['newline'] = "\r\n"; //"\r\n" or "\n" or "\r" Newline character. (Use "\r\n" to comply with RFC 822).
$config['bcc_batch_mode'] = FALSE; //TRUE or FALSE (boolean) Enable BCC Batch Mode.
$config['bcc_batch_size'] = 200; //Number of emails in each BCC batch.
$this->load->library('email');
$this->email->initialize($config);
$this->email->from('[email protected]', 'Me');
$this->email->reply_to('[email protected]', 'Me');
$this->email->to('[email protected]');
$this->email->subject('testing my mail function with CodeIgniter');
$this->email->message('<html><body>this is the content</body></html>');
if ( ! $this->email->send()){
echo 'error! <br />';
//Generate error
}
echo $this->email->print_debugger();
}
und folgende Fehlermeldung war in meinem browser :
error!
220 mx.google.com ESMTP b8sm581192pbj.46
hello: 250-mx.google.com at your service, [118.96.231.25]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
Failed to send AUTH LOGIN command. Error: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
from: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
The following SMTP error was encountered: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
to: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
The following SMTP error was encountered: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
data: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
The following SMTP error was encountered: 530 5.7.0 Must issue a STARTTLS command first. b8sm581192pbj.46
502 5.5.1 Unrecognized command. b8sm581192pbj.46
The following SMTP error was encountered: 502 5.5.1 Unrecognized command. b8sm581192pbj.46
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Wed, 1 Jun 2011 09:27:21 +0700
From: "Me"
Return-Path:
Reply-To: "Me"
To: you@yahoo.com
Subject: =?utf-8?Q?testing_my_mail_function_with_CodeIgniter?=
X-Sender: me@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <4de5a38938720@gmail.com>
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="B_ALT_4de5a38938733"
This is a multi-part message in MIME format.
Your email application may not support this format.
--B_ALT_4de5a38938733
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
this is the content
--B_ALT_4de5a38938733
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<html><body>this is the content</body></html>
--B_ALT_4de5a38938733--
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus Gründen der Sicherheit, Googles e-mail-Server SSL oder TLS, um E-mail zu senden. Es verwendet nicht die standard-unverschlüsselt port 25 Methode, es zu tun.
Haben Sie grundsätzlich zwei Möglichkeiten. 1) sendmail oder mail auf Ihrem eigenen server, um die Nachrichten zu liefern, oder 2) verwenden Sie die Methode hier beschrieben zum senden von e-Mails über den Google-Servern mit SSL. Viel Glück, und ich hoffe, das hilft.
Die Sie versuchen, senden von ausgehenden Mails via Gmail auf standard-SMTP-port 25. Gmail akzeptiert keine unverschlüsselte verbindungen an diesem port (oder beliebigen port). Sie müssen verwenden Sie die port -
465
über SSL.Müssen Sie ändern Sie Ihre
$config['smtp_port']
zu465
und Ihre$config['smtp_host']
zu'ssl://smtp.googlemail.com'
Mehr info hier
Können Sie auch port 587 verwendet werden:
- und smtp-host:
fsockopen(): SSL: An existing connection was forcibly closed by the remote host.
Ich dieses Problem behoben, indem die ssl Präfix auf
smtp_host
verlassen es auf diese Weise:Und verwenden Sie den port 465 (das ist google ' s smtp-port):
Ansonsten, standardmäßig google blockiert die 'niedrige Sicherheit conections', so dass Sie eingeben können, um Ihr google-Konto und konfigurieren Sie diese option.
Erlauben weniger sichere apps Zugriff auf Konten
Aktivieren Sie diese option, und versuchen Sie es dann erneut. Hoffe, dies kann Ihnen helfen!.
1) der smtp-port muss
465
.2) der smtp-host muss
ssl://smtp.gmail.com
.