【问题标题】:"Your message has been successfully sent using the following protocol: mail" , but I get nothing"您的消息已使用以下协议成功发送:邮件",但我什么也没收到
【发布时间】:2013-02-08 11:03:21
【问题描述】:

我使用 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();

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

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

但我没有收到任何邮件。

有什么问题?

【问题讨论】:

  • 听起来您需要自己的邮件服务器。 p.s.如果您要对某事投反对票,请发表评论并说明原因。在那之前投票。
  • @Nick 这不是投票应该如何运作的。请不要仅仅为了抵消其他人的反对而投票。
  • @Pekka웃 如果有人不解释他们为什么投反对票,因为他们应该这样做,那么我认为没有理由破坏某人的声誉。他们至少可以被告知如何改进。投票并非没有理由
  • 您不能使用与您发送的服务器无关的“发件人”地址发送电子邮件。这势必会让您的邮件进入垃圾邮件过滤器。
  • 另外,请尝试从 smtp_host 行中删除 ssl://

标签: php apache codeigniter xampp


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

【讨论】:

    【解决方案2】:

    只是为了投入我的一点点:


    在您使用 gmail 的第一个示例中。如果您刚刚取消了行 extension=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(请注意,由于某些原因,这可能会改变)。包括这些并试一试。


    除了上述之外, 检查服务器中配置的包罗万象的电子邮件,以查看电子邮件是否到达。尝试发送给自己。检查垃圾邮件和垃圾文件夹。邮件已成功离开您,可能会排队等待稍后的递送。可能需要某种类型的服务器刷新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      相关资源
      最近更新 更多