【问题标题】:I Want to send email from cakephp 2.x in company domain email adress我想在公司域电子邮件地址中从 cakephp 2.x 发送电子邮件
【发布时间】:2014-04-28 10:47:51
【问题描述】:

我无法发送邮件。使用以下代码:- 如果我删除 $Email->config('gmail') 比我能够在 id lke 上发送电子邮件:- test@gmail.com 但无法发送发送电子邮件至 test@test-test@gmail.com

下面是我在 AppController 中添加的代码:-

  function sendEmail($email, $subject, $body){
App::uses('CakeEmail', 'Network/Email');
$Email = new CakeEmail();
    $send=$Email->config('gmail')->from(array('support@test-apps.com'=>'test Apps'))
         ->to($email)
         ->subject($subject)
                    ->emailFormat('html')
            ->send($body);
 if($send){
    return "sent";
  }else {
    return "error";
    }
} 

my email config is :- 

class EmailConfig {

    public $gmail = array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'username' => 'my@gmail.com',
    'password' => 'secret',
    'transport' => 'Smtp'
   );
   }

【问题讨论】:

标签: php email cakephp cakephp-2.0


【解决方案1】:

你也没有设置配置。试试这个

function sendEmail($to, $subject, $body){
App::uses('CakeEmail', 'Network/Email');
$Email = new CakeEmail();
    $Email->config('gmail') // gmail, smtp or any config you have created in email config
          ->emailFormat('html')
          ->from('tesst@gmail.com')              
          ->to($to)
          ->subject($subject);

 if($Email->send($body)){
    return "sent";
 }else {
    return "error";
 }

class EmailConfig {
    public $smtp = array( 
            'transport' => 'Smtp',
            'from' => array('info@domain.co.uk' => 'Company Name'),
            'host' => 'company host',
            'port' => 25,
            'timeout' => 30,
            'username' => 'email',
            'password' => 'password',
            'client' => null,
            'log' => false,                
    );

//add other email config e.g. gmail

    public $gmail = array(
            'host' => 'ssl://smtp.gmail.com',
            'port' => 465,
            'username' => 'my@gmail.com',
            'password' => 'secret',
            'transport' => 'Smtp'
        );
}

只需将 $Email->config('smtp') 更改为 $Email->config('gmail')

并在当前控制器或 AppController 上加载 App::uses('CakeEmail', 'Network/Email');

【讨论】:

  • 非常感谢您的回复。我发现了这个问题。电子邮件 ID 是 test@test-test.com。如果我删除 hifen(-) 而不是发送电子邮件。你知道我必须进行哪些更改才能发送带有 spl 域电子邮件的邮件。字符。
  • 这不应该是你的问题。破折号有效。尝试将电子邮件放在双引号之间
  • 请告诉我您的电子邮件配置设置。下面是我的电子邮件配置文件类 EmailConfig { public $smtp= array( 'host' => 'ssl://smtp.gmail.com', 'port' => 465, 'timeout' => 30, ' username' => 'my@gmail.com', 'password' => 'secret', 'transport' => 'Smtp' );
  • 如果你想设置 gamil 做一个其他配置名称它 gmail
  • 如果我设置了电子邮件配置文件,它会为 al email id 提供错误:- CORE/Cake/Network/Email/SmtpTransport.php 第 99 行 → CakeSocket->connect() CORE/Cake/Network /Email/SmtpTransport.php 第 59 行 → SmtpTransport->_connect() CORE/Cake/Network/Email/CakeEmail.php 第 1122 行 → SmtpTransport->send(CakeEmail) APP/Controller/Component/CommonComponent.php 第 26 行 → CakeEmail- >send(string) APP/Controller/UsersController.php line 342 → CommonComponent->sendEmail(string, string, string) [内部函数] → UsersController->resendmail(string) CORE/Cake/Controller/Controller.php
【解决方案2】:

https://book.cakephp.org/2.0/en/core-utility-libraries/email.html

App::uses('CakeEmail', 'Network/Email');

使用 CakeEmail 类似于使用 EmailComponent。但不是 使用属性,您使用方法。示例:

$Email = new CakeEmail();
$Email->from(array('me@example.com' => 'My Site'));
$Email->to('you@example.com');
$Email->subject('About');
$Email->send('My message');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2013-01-20
    • 2017-06-07
    • 2022-06-16
    • 1970-01-01
    相关资源
    最近更新 更多