zl程序教程

您现在的位置是:首页 >  后端

当前栏目

php发邮件:swiftmailer, php邮件库——swiftmailer

PHP 邮件 发邮件
2023-09-14 08:57:51 时间

php发邮件:swiftmailer, php邮件库——swiftmailer

最近看到一个好的php邮件库,与phpmailer作用一样,但性能比phpmailer好,尤其是在处理附件的能力上,发送邮件成功的几率也高。

github地址:https://github.com/swiftmailer/swiftmailer.git

 

require_once ("lib/swift_required.php");

// 创建Transport对象,设置邮件服务器和端口号,并设置用户名和密码以供验证
$transport = Swift_SmtpTransport::newInstance('smtp.163.com', 25)
->setUsername('username@163.com')
->setPassword('password');

// 创建mailer对象
$mailer = Swift_Mailer::newInstance($transport);

// 创建message对象
$message = Swift_Message::newInstance();

// 设置邮件主题
$message->setSubject('这是一份测试邮件')

// 设置邮件内容,可以省略content-type
->setBody(
    '<html>' .
    ' <head></head>' .
    ' <body>' .
    ' Here is an image <img src="' . // 内嵌文件
    $message->embed(Swift_Image::fromPath('image.jpg')) .
    '" alt="Image" />' .
    ' Rest of message' .
    '<a href="http://www.baidu.com">百度</a>'.
    ' </body>' .
    '</html>',
    'text/html'
);

// 创建attachment对象,content-type这个参数可以省略
$attachment = Swift_Attachment::fromPath('image.jpg', 'image/jpeg')
->setFilename('cool.jpg');

// 添加附件
$message->attach($attachment);

// 用关联数组设置收件人地址,可以设置多个收件人
$message->setTo(array('to@qq.com' => 'toName'));

// 用关联数组设置发件人地址,可以设置多个发件人
$message->setFrom(array(
    'from@163.com' => 'fromName',
));

// 添加抄送人
 $message->setCc(array(
      'Cc@qq.com' => 'Cc'
 ));

// 添加密送人
$message->setBcc(array(
      'Bcc@qq.com' => 'Bcc'
));

// 设置邮件回执
$message->setReadReceiptTo('receipt@163.com');

// 发送邮件
$result = $mailer->send($message);

  

测试代码,测试例子:

 $Requests = __DIR__ . '/../../../vendor/swiftmailer/swiftmailer/lib/swift_required.php';
        require_once ($Requests);
        //Requests::register_autoloader ();

		// 创建Transport对象,设置邮件服务器和端口号,并设置用户名和密码以供验证
		$transport = \Swift_SmtpTransport::newInstance('smtp.exmail.qq.com', 25)
		->setUsername('business@xxxx.com')
		->setPassword('密码');

		// 创建mailer对象
		$mailer = \Swift_Mailer::newInstance($transport);

		// 创建message对象
		$message = \Swift_Message::newInstance();

		// 设置邮件主题
		$message->setSubject('这是一份测试邮件')->setBody('aaaa');
          //发送html文档                 
$message->setSubject('这是一份测试邮件')->setContent("text/html")->setBody('aaaa');

// 用关联数组设置收件人地址,可以设置多个收件人 
$message->setTo(array('muyang@xxxx.com' => '姓名')); 
// 用关联数组设置发件人地址,可以设置多个发件人 
$message->setFrom(array( 'business@xxxxx.com' => '姓名', )); 
// 发送邮件 
$result = $mailer->send($message); echo "aaa"; exit;