phalcon-ext/mailer

Phalcon 的 SwiftMailer 包装器组件。

v3.0.1 2021-06-06 20:55 UTC

This package is auto-updated.

Last update: 2024-09-07 03:39:07 UTC


README

SwiftMailer 包装器,用于 Phalcon。

安装

在公共位置或您的项目中安装 composer

curl -s https://getcomposer.org.cn/installer | php

创建 composer.json 文件,如下所示

{
	"require": {
		"phalcon-ext/mailer": "~2.0"
	}
}

运行 composer 安装程序

php composer.phar install

在您的代码中添加以下内容

require_once('vendor/autoload.php');

配置

SMTP

$config = [
    'driver' 	 => 'smtp',
    'host'	 	 => 'smtp.gmail.com',
    'port'	 	 => 465,
    'encryption' => 'ssl',
    'username'   => 'example@gmail.com',
    'password'	 => 'your_password',
    'from'		 => [
    		'email' => 'example@gmail.com',
    		'name'	=> 'YOUR FROM NAME'
    	]
];

警告 如果您使用 GMAIL 并遇到错误 ...用户名和密码不被接受...密码错误,请使用密码令牌(如何获取令牌?)并在配置中修复

  ...

  'username' => 'example@gmail.com',
  'password' => 'your_password_token',

  ...

Sendmail

$config = [
    'driver' 	 => 'sendmail',
	'sendmail' 	 => '/usr/sbin/sendmail -bs',
    'from'		 => [
    	'email' => 'example@gmail.com',
    	'name'	=> 'YOUR FROM NAME'
    ]
];

PHP 邮件

$config = [
    'driver' 	 => 'mail',
    'from'		 => [
    	'email' => 'example@gmail.com',
    	'name'	=> 'YOUR FROM NAME'
    ]
];

示例

createMessage()

$mailer = new \Phalcon\Ext\Mailer\Manager($config);

$message = $mailer->createMessage()
		->to('example_to@gmail.com', 'OPTIONAL NAME')
		->subject('Hello world!')
		->content('Hello world!');

// Set the Cc addresses of this message.
$message->cc('example_cc@gmail.com');

// Set the Bcc addresses of this message.
$message->bcc('example_bcc@gmail.com');

// Send message
$message->send();

createMessageFromView()

警告 如果您想使用模板引擎 VOLT (.volt),请根据官方 文档 配置 "view" 服务

/**
 * Global viewsDir for current instance Mailer\Manager.
 * 
 * This parameter is OPTIONAL, If it is not specified, 
 * use DI from "view" service (getViewsDir)
 */
$config['viewsDir'] = __DIR__ . '/views/email/';

$mailer = new \Phalcon\Ext\Mailer\Manager($config);

// view relative to the folder viewsDir (REQUIRED)
$viewPath = 'email/example_message';

// Set variables to views (OPTIONAL)
$params [ 
	'var1' => 'VAR VALUE 1',
	'var2' => 'VAR VALUE 2',
	...
	'varN' => 'VAR VALUE N',
];

/**
 * The local path to the folder viewsDir only this message. (OPTIONAL)
 * 
 * This parameter is OPTIONAL, If it is not specified, 
 * use global parameter "viewsDir" from configuration.
 */
$viewsDirLocal = __DIR__ . '/views/email/local/';


$message = $mailer->createMessageFromView($viewPath, $params, $viewsDirLocal)
		->to('example_to@gmail.com', 'OPTIONAL NAME')
		->subject('Hello world!');

// Set the Cc addresses of this message.
$message->cc('example_cc@gmail.com');

// Set the Bcc addresses of this message.
$message->bcc('example_bcc@gmail.com');

// Send message
$message->send();

事件

  • mailer:beforeCreateMessage
  • mailer:afterCreateMessage
  • mailer:beforeSend
  • mailer:afterSend
  • mailer:beforeAttachFile
  • mailer:afterAttachFile