CakePHP与屏蔽电子邮件发送者

CakePHP与屏蔽电子邮件发送者,php,email,cakephp,Php,Email,Cakephp,我目前正在使用一个名为send的函数: public function send(){ if ( !empty($this->request->data) ) { $email = new CakeEmail('default'); $email->from(array($this->Auth->user('email') => $this->Auth->user('username'))) ->

我目前正在使用一个名为send的函数:

    public function send(){


     if ( !empty($this->request->data) ) {
    $email = new CakeEmail('default');
    $email->from(array($this->Auth->user('email') => $this->Auth->user('username')))
    ->to(array('helpdesk@example.com'))
    ->subject($this->request->data['Ticket']['subject'])
    ->send(array($this->request->data['Ticket']['issue']));

    $this->Session->setFlash('Email Sent Successfully', 'default', array('class' => 'message update span9'));
    $this->redirect(array('action' => 'index'));

    }
向我们的帮助台发送电子邮件并将其存入他们的数据库。除“发件人”始终显示配置选项中的用户名/电子邮件地址外,所有功能均正常工作。它不是用用户的电子邮件屏蔽电子邮件。。我需要这样做,以便我们知道谁有支持问题

这里有人有什么建议吗

*加成


这是一个内部网应用程序,因此我们有一个使用smtp设置的经过身份验证的通用用户。这不是垃圾邮件,我们只是想知道在插入数据库时,帮助台记录单来自哪个用户。

为什么要使用配置
默认值

如果您使用
$email=new CakeEmail(),发送的电子邮件是否引用经过身份验证的用户电子邮件信息

此外,您应该始终使用
$email->sender('support@yourcompany.com“,”贵公司支持“)。这样可以确保,如果出现问题,问题将被重定向到您而不是用户,您的应用程序将代表他/她发送电子邮件


我已经在我的帐户设置,它的工作刚刚好。马克认为,这可能不合法(虽然,这似乎不是你的问题),但我知道这是可能的,因为我目前有一个系统设置,可以处理任何我想要的电子邮件。我不使用任何配置,也不使用任何SMTP

未经SMTP设置和授权,您不得从其他用户的电子邮件帐户发送电子邮件。您只能从您的帐户发送电子邮件(无论如何都是有效的电子邮件)。将他们的电子邮件放在“回复”标题中。马克,他能成功地使用
$this->sender吗hisemail@hiscompany“,”他的公司“)
并且仍然在“发件人”字段中使用用户的电子邮件信息?正如我所说,“回复”就是因为这个原因而存在的。没错,但是如果你想代表用户发送电子邮件,
$this->sender()
也存在,对吗?我想只要他自己在“发垃圾邮件”,那就没问题了。我认为如果他使用用户的电子邮件地址向第三方发送消息,这将是一个问题。一如既往,我重视你的意见!电子邮件服务器如何知道电子邮件所有者是否同意?电子邮件是在PHP的表面下进行的。这里没有“握手”。电子邮件也用于官方通信和法律环境(签署/合同)。这将是非常非常非常有害的电子邮件的信任,如果这种弊端将是任何东西,但垃圾邮件标记。想象一下,我给你的老板或你生活中的其他人发了一封非常无礼的电子邮件,看起来他们已经被你完全认证/发送了。不是很好,是吗?如果你使用外来发件人地址(以其他用户的身份发送邮件——可以说是模仿他们),这是一种非常糟糕的垃圾邮件形式。此类未经授权的电子邮件应该也将最终进入垃圾邮件文件夹。如果由于对供应商缺乏信任而未被供应商阻止。电子邮件提供商通常基于反向域查找(匹配您的域IP)来执行此操作。因此,您可以为每个用户设置电子邮件帐户-所有用户都使用相同的
@yourcompany.com
域(user1@yourcompany.com, user2@...). 那就好了。马克,我倾向于稍微同意你的看法。然而,我所使用的是,当用户访问我的站点并想要向我发送电子邮件/联系表单时,我将他们输入的电子邮件地址设置为$email->from和我的电子邮件,比如说support@domain.com作为$email->to。我不是用他们的电子邮件给其他用户发垃圾邮件,我只是把他们填写的联系表发给我。如果你去CNN.COM,想通过电子邮件将他们的一篇新闻文章发送给朋友,CNN不会使用他们的电子邮件,他们会明确使用你输入的邮件。这就是我正在采取的方法。我不认为这是垃圾邮件在任何方面。谢谢在“这个特定案例”中,您可能不这么认为,电子邮件的所有者也可能不这么认为。但电子邮件服务器仍然会这么认为(他们怎么知道在这种情况下,两个参与者都同意违反协议?)。一个好的联系人表单总是使用系统电子邮件地址,并用发件人信息设置“回复”。因此,如果您在电子邮件程序中“点击”了“回复”,那么您就找到了正确的人。如果您使用的是外来发件人()地址,那么使用发件人()很可能也会验证邮件。这样,您仍然可以看到此电子邮件是从第三方应用程序发送的。但是“在所有情况下,“发件人:”字段不应包含任何不属于邮件作者的邮箱”。因此,协议并不认为这是一个好的实践-至少我不认为这意味着要离开“相同域”范围(示例也指出了这一点)。感谢Mark的评论。。。我把这一切当作一个学习的机会。。。