“您的邮件已成功使用以下协议发送:邮件”,但我什么都没得到

时间:2013-02-22 18:27:25

标签: php apache codeigniter xampp

我使用Xampp,我想使用CodeIgniter发送电子邮件。如果使用smtp获取错误:

  

消息:fsockopen():无法连接   ssl://smtp.googlemail.com:465(无法找到套接字传输   “ssl” - 您在配置PHP时是否忘记启用它?)   文件名:libraries / Email.php

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'gmail@gmail.com',
    'smtp_pass' => 'your_password'
);

$this->load->library('email', $config);
$this->email->set_newline("\r\n");   
$this->email->from('your@example.com', 'Your Name');
$this->email->to('(here I put my mail)@yahoo.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();

(line extension=php_openssl.dll is decomented)

使用以下设置:

$this->load->library('email');
$this->email->set_newline("\r\n");   
$this->email->from('your@example.com', 'Your Name');
$this->email->to('(here I put my mail)@yahoo.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();

出现消息:您的消息已使用以下协议成功发送:mail

来自:“你的名字” 返回路径:.......

但是我没有收到任何邮件。

有什么问题?

2 个答案:

答案 0 :(得分:2)

  1. 'mail'协议意味着它使用PHP的mail()函数,只需提交给服务器的邮件代理。 “成功”只是意味着它被接受了,但并没有表明它是否曾经试图被交付。邮件代理可能会被关闭,配置错误等等。您需要检查邮件日志,或者更有可能询问您的托管服务提供商。
  2. 如果您实际使用anything@example.com的“发件人”地址,我怀疑邮件是否会真正通过。使用可以自行接收电子邮件的真实电子邮件地址。
  3. 检查您的垃圾邮件文件夹。

答案 1 :(得分:0)

只是扔掉我的一点点:


关于使用gmail的第一个示例。如果您只是将行扩展名= php_openssl.dll取消注释,则可能必须在测试之前重新启动apache。特别是如果您使用的是Windows系统。这正是我修复我的方式。检查你的phpinfo()以确保你的php版本有ssl支持。假设您正在使用xampp,那应该就在那里。

我还建议FROM电子邮件是一个Gmail帐户。可能与smtp_user中使用的相同。您始终可以在邮件中包含所需的其他电子邮件信息。如果我打算回复发件人,而不是使用发件人的电子邮件,我使用的是Gmail帐户。在邮件正文中,我可以包含一个mailto链接,主题与邮件主题相同。例如:

<a href="mail:email@stewardxpress.com?subject=From The User's Form" >Reply User</a>

单击要链接的邮件时,我可以使用Outlook或Gmail轻松回复。它可能有点刮风,但它可以阻止我的邮件进入垃圾邮件文件夹


在你的第二个例子中,这在localhost中不起作用。所以我猜你正在使用一个网络托管帐户。某些主机要求您指定要在from字段中使用的smtp服务器,用户名和密码。最常见的smtp是smtp.example.com。 IP也可以工作,尝试ping以获取smtp IP(请注意,由于某些原因,这可能会改变)。包括这些并尝试一下。


除上述外, 检查服务器中配置的catchall电子邮件,以查看电子邮件是否已到达。试着发送给自己。检查垃圾邮件和垃圾文件夹。邮件已成功离开您,可能排队等待以后发送。可能需要某种服务器刷新。