CakePHP smtpに問題があり、電子メールを送信できません。私はGoogle smtpサービスを使用しています。私が使用していることをCakePHP電子メールsmtp送信しない
ケーキバージョンは、ユーザー登録後、CakePHPのV2.4.1
あり、それはcronジョブを呼び出し、それがApiController内からのメール機能を実行します。
public function processEmailQueue(){
ScriptLockComponent::lock(__FUNCTION__);
$emails = $this->Email->find('all', array(
'conditions' => array(
'Email.status' => Email::STATUS_NOT_SEND,
'Email.instance_id' => ''
),
'recursive' => 1,
'order' => array('Email.priority DESC'),
'limit' => self::BATCH_LIMIT
)
);
// creating new email object
$cakeEmail = new CakeEmail();
$date = new DateTime();
foreach ($emails as $emailData) {
$cakeEmail->reset();
$priorityValue = intval($emailData["Email"]["priority"]) + 1;
//Getting email template from database
$emailManagement = $this->EmailTemplate->getEmailTemplate($emailData["Email"]["email_template_id"], json_decode($emailData["Email"]["content"], TRUE));
// setting email configurations, and sending email
// setting unsubscribe url in the mail footer
$templateId = $emailData["Email"]["email_template_id"];
if (in_array($templateId, $this->emailTemplateIds)) {
$autoLoginToken = $this->Otp->createOTP(array(
'email' => $emailData["Email"]["to_email"]
));
$email = base64_encode($emailData["Email"]["to_email"]);
$unsubscribeUrl = Router::Url('/', TRUE) . 'unsubscribe?setting=' .$templateId. '&auto_login_token=' . $autoLoginToken .'&email=' . $email ;
} else {
$unsubscribeUrl = '';
}
try {
$cakeEmail->config('gmail')
//->template('default')
->viewVars(array('unsubscribe' => $unsubscribeUrl))
->emailFormat('html')
->to($emailData["Email"]["to_email"])
->subject($emailManagement['EmailTemplate']['template_subject'])
->setHeaders(array('List-Unsubscribe' => $unsubscribeUrl))
->send($emailManagement['EmailTemplate']['template_body']);
$this->Email->set(array(
'id' => $emailData["Email"]["id"],
'sent_date' => $date->format('Y-m-d h:i:s'),
'status' => Email::STATUS_SEND
));
$this->Email->save();
} catch (Exception $e) {
$this->Email->set(array(
'id' => $emailData["Email"]["id"],
'priority' => $priorityValue,
'status' => Email::STATUS_NOT_SEND
));
$this->Email->save();
}
}
問題は何も電子メールがそれがケースになる理由を送信されていないということである。ここでは
は、呼び出している関数です。 は ケビン
あなたはすべてのエラーメッセージやリターンを得ている、ありがとう! – CodeIsLife
エラーメッセージは一切表示されません。 –
最後のLoC this-> Email-> save();代わりにsend()を使用してください。 – CodeIsLife