使用yii自带发邮件功能发送邮件

邮件组件的配置取决于您选择的扩展名。通常,您的应用程序配置应如下所示:

在配置文件中配置
 dirname(dirname(__DIR__)) . '/vendor',
    'timeZone'=>'Asia/Chongqing',
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=root',
            'username' => 'root',
            'password' => 'root',
            'charset' => 'utf8',
        ],
        //这里以QQ邮箱作为例子//邮箱添加mailer中的代码
		'mailer' => [
			'class' => 'yii\swiftmailer\Mailer',
			'useFileTransport' => false,
			'transport' => [
				'class' => 'Swift_SmtpTransport',
				'encryption' => 'tls',
				//这里的host是qq邮箱发送邮件的地址
				'host' => 'smtp.qq.com',
				'port' => '587',
				//你的qq号
				'username' => '',
				//这里的参数需要申请,点击qq邮箱界面的设置-》账户-》找到(POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务)-》开启(POP3/SMTP服务)-》会有一个密钥填入就行
				'password' => '',
			],             
		],
        'cache' => [
            'class' => 'yii\caching\FileCache',
            'cachePath' => '@runtime/cache2',
        ],
        'assetManager' => [
            'forceCopy' => true,
            'appendTimestamp' => true,
        ],
    ],

];

在你需要的地方调用

// 发送邮件类
  public function actionSendout(){
	  //$mail= Yii::$app->mailer->compose();   
	  //$mail->setTo('[email protected]'); //要发送给那个人的邮箱   
	 // $mail->setSubject("邮件主题"); //邮件主题   
	 // $mail->setTextBody('测试text'); //发布纯文字文本   
	  //$mail->setHtmlBody("测试html text"); //发送的消息内容   
	  //var_dump($mail->send());  
	   sleep(30);
	  //查询数据库
	  $data = Mails::find()->asArray()->all();
	  
	  $mail= Yii::$app->mailer->compose();
	  //发送者的邮箱
			$mail->setFrom('[email protected]');
			//接收者的邮箱
			$mail->setTo('[email protected]');
			$mail->setSubject('客户名单');
			$mail->setTextBody('Plain text content');
			//这里是多条发送
			$messages='';
			foreach ($data as $user) {
				$messages.="
				

公司:".$user['company']."

姓名:".$user['name']."

邮箱:".$user['mails']."

电话:".$user['phone']."

省:".$user['province']."

市:".$user['city']."

留言内容:".$user['content']."

"; $mail->setHtmlBody($messages); $mail->send(); $messages=''; } //这里是单条发送 //$mail->setHtmlBody('你好'); //$mail->send(); Yii::$app->session->setFlash('success','发送成功'); Yii::$app->session->setFlash('error','邮件发送失败'); return $this->redirect(Url::toRoute(['index'])); }

你可能感兴趣的:(yii,php)