【问题标题】:Sending email with codeigniter (newbie) [duplicate]使用codeigniter(新手)发送电子邮件[重复]
【发布时间】:2013-02-06 15:12:57
【问题描述】:

我是 Codeigniter 的菜鸟,我想制作一个联系表格,并将其发送到我的 gmail。我做了一个视图:

<div id="content">
<?php if (isset($mail_sent)): ?>
<b>Mail Sent</b>
<?php endif; ?>

<form action="<?php echo base_url() ?>" method="POST">

<b>Your Name :</b>
<br />
<input type="text" name="name" />
<br />
<b>Your Email Address:</b>
<br />
<input type="text" name="from" />
<br />
<b>Subject :</b>
<br />
<input type="text" name="subject" />
<br />
<b>Message :</b>
<br />
<textarea name="message" rows="10" cols="15"></textarea>
<br />
<input type="submit" name="q" value="Contact" />

</form>
</div>

我在我的联系页面中的同一控制器代码块中有邮件设置。它看起来像这样:

public function contact()
{
    $this->load->view('header');
    $this->load->view('owrb_contact');
    $this->load->view('footer');

    $config['protocol'] = 'sendmail';
    $config['mailpath'] = '/usr/sbin/sendmail';
    $config['charset'] = 'iso-8859-1';

    // gmail specific settings here
    $config['smtp_host'] = 'smtp.gmail.com';
    $config['smtp_user'] = 'keessonnema@gmail.com';
    $config['smtp_pass'] = '123keesje123';
    $config['smtp_port'] = '465';

    $config['wordwrap'] = TRUE;

    $this->load->library('email');
    $this->email->initialize($config);

    $this->email->from('keessonnema@gmail.com', 'Kees Sonnema');

    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');  

    $this->email->send();
}

现在我必须配置一个 smtp gmail 控制器吗?我真的不知道该怎么做。

谢谢

【问题讨论】:

  • 看起来像帖子,但我还不明白逻辑。所以他们可以发布很多代码,但我需要一个干净易读的教程或使用 CI 发送电子邮件的东西

标签: php codeigniter email smtp gmail


【解决方案1】:

您可以使用 Codeigniter 框架发送邮件,这里有描述。

http://ellislab.com/codeigniter/user-guide/libraries/email.html

有协议、服务器和您可能希望配置的每个项目的设置。如果您愿意,也可以将其与 gmail 挂钩。

$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';

// gmail specific settings here
$config['smtp_host'] = '';
$config['smtp_user'] = '';
$config['smtp_pass'] = '';
$config['smtp_port'] = '';

$config['wordwrap'] = TRUE;

$this->load->library('email');
$this->email->initialize($config);

$this->email->from('your@example.com', 'Your Name');

$this->email->subject('Email Test');
$this->email->message('Testing the email class.');  

$this->email->send();

【讨论】:

  • 感谢您的回答。这有点奇怪,因为它对我来说是新的,但问题是没有关于如何做到这一点的好的教程。但我会试试这个。
  • 我认为如果您将控制器指南与如何发送邮件的文档结合起来,您应该能够创建一个邮件控制器。恐怕它们不是完整的指南,但它们提供了您需要的信息。这里是控制器指南的 url。 ellislab.com/codeigniter/user-guide/general/controllers.html
  • 嗯,这真的很棘手,我无法弄清楚。也许你可以发布一个小例子?我必须将邮件设置放在我的默认控制器中还是必须创建一个新的?
  • 这完全取决于你想在哪里发布你的 html 表单。您可以将其发布到您的默认控制器,然后检查是否已发布有问题的邮件表单,然后在那里发挥您的作用。 :) 或者您可以简单地创建一个新控制器并将表单操作指向那里。如何设计控制器逻辑完全取决于您。这就是它的美妙之处。
  • 好吧 :) 我希望我能快速了解这些东西,因为现在进展非常缓慢
猜你喜欢
  • 2017-12-07
  • 1970-01-01
  • 2017-11-30
  • 2013-01-07
  • 2019-08-07
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多