inari111 blog

Webエンジニアの備忘録

CakeEmailを使ってMacからGmail経由でメールを送信する

CakeEmailの設定
cp app/Config/email.php.default app/Config/email.php

Gmailを使いたいのでGmailの設定を書き加える
app/Config/email.php

public $gmail = array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'username' => '自分のgmailアカウント',
        'password' => 'パスワード'
    );
メール送信のコードを書く

app/Controller/EmailsController.php

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

class EmailsController extends AppController {
    public function send()
    {
        $email = new CakeEmail('gmail');
        $res = $email->config(array('log' => 'emails'))
            ->from(array('from用のアドレス' => 'アドレスの別名'))
            ->to('送りたいアドレス')
            ->subject('タイトル')
            ->send('メッセージ');
        debug($res);
        
    }
}
実行

ここまで書いて実行して、送信できているか確認
/var/log/mail.logを見ると
fatal: chdir(/Library/Server/Mail/Data/spool): No such file or directory
と。。。
ディレクトリがないと怒られました。

sudo mkdir -p /Library/Server/Mail/Data/spool

起動してみる

sudo postfix start

postfix/postfix-script: warning: group or other writable: /Library/Server/Mail/Data/mta
postfix/postfix-script: starting the Postfix mail system
他の人も書き込めるようになってますよーって警告も出てるけど
うまくいったっぽい。

これで再度実行すると、送信できていました。
しかし、迷惑メールのフォルダに分けられていました。
設定変えれば、Gmailで弾かれなくなるようです。

以下が参考になりました。
CakeEmailを使ってMac OS XからGmail経由でメールをする - こんにちはこんにちはmonmonです!
Mac OS X (Mountain Lion)で、Postfix(sendmail)の設定を行いコマンドからgmail/icloudアドレスでメールを送る | Roguer