gpt4 book ai didi

email - 我如何使用 CakePHP 电子邮件组件?

转载 作者:行者123 更新时间:2023-12-01 16:21:57 26 4
gpt4 key购买 nike

我是 CakePHP 的新手,正在拼命学习!

我最近的挣扎是与电子邮件组件有关。

我有契约(Contract)。当我创建契约(Contract)时,我添加了一个用户。当我保存新契约(Contract)时...第一次,我想向该契约(Contract)中的用户发送一封电子邮件,允许他们单击返回契约(Contract)的链接,然后接受或拒绝契约(Contract)。

如何发送此电子邮件?

我能得到的详细信息越多越好。我在那里读到的一切都令人惊讶地令人困惑。我需要配置 smtp 设置吗?保存后如何在契约(Contract)中抓取用户并将其和契约(Contract)链接传递到电子邮件中?我如何知道电子邮件是否已发送,而不是每次都去检查我的电子邮件?

这是我在 contracts_controller.php 中用于电子邮件发送功能的代码:(一个契约(Contract)属于一个用户,一个用户有许多契约(Contract)。)

function _sendContractEmail($id) {
$this->Email->smtpOptions = array(
'port'=>'465',
'timeout'=>'30',
'host'=>'ssl://smtp.gmail.com',
'username'=>'username',
'password'=>'password'
);
$this->Email->delivery = 'smtp';
$User = $this->Contract->User->read(null,$id);
$this->Email->to = 'jeremiah@jeremiahotis.com';
$this->Email->subject = '';
$this->Email->replyTo = 'no-reply@goodvaluation.com';
$this->Email->from = 'Jeremiah Oits <jeremiah@jeremiaotis.com>';
$this->Email->template = 'simple_message';
$this->Email->sendAs = 'html';
$this->set('User', $User);
$this->Email->_debug = true;
$this->Email->send('Test Email');
$this->redirect(array('controller'=>'contracts', 'action'=>'index'));
}

这是我在 contracts_controller.php add() 函数中的代码:

function add() {
if (!empty($this->data)) {
$this->Contract->create();
if ($this->Contract->save($this->data)) {
$this->Session->setFlash(__('The Contract has been saved', true));
$this->_sendContractEmail($this->Contract->User->id);
} else {
$this->Session->setFlash(__('The Contract could not be saved. Please, try again.', true));
}

并且,这是在 $name 和 $helpers 之后我的 contracts_controller.php 文件的顶部:

var $components = array('Email');

我想我应该指出我在使用模板时遇到了问题,因此为了测试它,我将电子邮件的正文直接包含在 send() 中,并且我指定了收件人电子邮件地址而不是使用变量。依然没有!没有错误,没有电子邮件。

任何帮助将不胜感激!我真的不知道我做错了什么!

谢谢,

耶利米

最佳答案

http://book.cakephp.org/view/481/Sending-A-Message-Using-SMTP

使用页面中的代码示例,特别是最后一部分来获取错误通知

/* Check for SMTP errors. */
$this->set('smtp-errors', $this->Email->smtpError);

您可以使用pr(smtp-errors)您的 View 打印 smtp 错误。

电子邮件的布局应位于

/app/view/layout/email/html
/app/view/layout/email/text

如果您想复制和修改默认模板,可以在下面找到它们

/libs/view/layouts/email/html
/libs/view/layouts/email/text

您的代码看起来是正确的。问题可能出在 SMTP 服务器拒绝电子邮件。

哦,你还应该检查 /app/tmp/logs 下的 debug.log 和 error.log

关于email - 我如何使用 CakePHP 电子邮件组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2006312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com