我使用以下配置通过php邮件功能发送邮件:
function sendInvoiceEmail() {
获取客户电子邮件
$recieverEmail = xyz@test.com; //Valid Email ID
$recieverName = xyz;
创建电子邮件配置阵列
$emailConfig = array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'abc@abc.com', //Valid Email ID
'smtp_pass' => 'password', //Valid password
'mailtype' => 'html', //text or html
'charset' => 'iso-8859-1',
);
设置您的电子邮件信息
$from = array('email' => 'abc@abc.com', 'name' => 'Testing');
$to = array('email' => $recieverEmail, 'name' => $recieverName);
$subject = "Test Mail for Invoice ";
$message = "Test Message for Invoice";
加载CodeIgniter电子邮件库
$this->load->library('email', $emailConfig);
$this->email->initialize($emailConfig);
有时您必须设置换行符以获得更好的结果
$this->email->set_newline("\r\n");
设置电子邮件首选项
$this->email->from($from['email'], $from['name']);
$this->email->to($to['email'], $to['name']);
$this->email->subject($subject);
$this->email->message($message);
准备发送电子邮件并检查电子邮件是否已成功发送
if ($this->email->send()) {
return true;
} else {
show_error($this->email->print_debugger());
}
}
我有PHP 5.3.9版本和wampserver但是我收到了以下错误:
An Error Was Encountered
The following SMTP error was encountered: 52770504 Unable to find the socket
transport "ssl" - did you forget to enable it when you configured PHP?
Unable to send data: AUTH LOGIN
Failed to send AUTH LOGIN command. Error:
Unable to send data: MAIL FROM:
from:
The following SMTP error was encountered:
Unable to send data: RCPT TO:
to:
The following SMTP error was encountered:
Unable to send data: DATA
data:
The following SMTP error was encountered:
Unable to send data: User-Agent: CodeIgniter Date: Thu, 27 Dec 2012 16:50:28
+0530 From: "Invoice Tester" Return-Path: To: df@df.kl Subject: =?iso-8859-1?Q?Test_Mail_for_Invoice_?= Reply-To: "sujit.singh@xpointers.com" X-Sender: sujit.singh@xpointers.com X-Mailer: CodeIgniter X-Priority: 3 (Normal) Message-ID: <50dc2efca4149@xpointers.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="B_ALT_50dc2efca4160" This is a multi-part message in MIME format. Your email application may not support this format. --B_ALT_50dc2efca4160 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Test Message for Invoice --B_ALT_50dc2efca4160 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Test Message for Invoice --B_ALT_50dc2efca4160--
Unable to send data: .
The following SMTP error was encountered:
Unable to send email using PHP SMTP. Your server might not be configured to
使用此方法发送邮件。
答案 0 :(得分:2)
尝试将“smtp_host”更改为“ smtp.gmail.com ”
退房:SMTP Error: Could not connect to SMTP host
尝试检查SSL错误:
从错误看,你的PHP版本可能没有用ssl编译。
执行命令
<?php
phpinfo();
?>
并检查“配置命令”是否具有“--with-openssl = / usr”之类的内容。 另外,请检查“已注册的流套接字传输”部分中是否列出了ssl。
答案 1 :(得分:1)
我知道wampserver在PHP扩展中有设置,所以如果你使用的是wampserver,那么你可以执行以下步骤:
1)转到WampSever Tray图标
2)转到PHP扩展
3)搜索php_openssl
4)如果未选中,则将其标记为选中(php_openssl
)
否则你可以参考迈克尔的答案:)
希望它会对你有所帮助。