403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/main/lib/mail/smtp/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/main/lib/mail/smtp/config.php
<?php

namespace Bitrix\Main\Mail\Smtp;

use Bitrix\Main;
use Bitrix\Mail;

class Config
{

	/**
	 * Sender name
	 *
	 * @var string|null
	 */
	protected $from;

	/**
	 * Server host
	 *
	 * @var string|null
	 */
	protected $host;

	/**
	 * Server port
	 *
	 * @var int|null
	 */
	protected $port;

	/**
	 * Server protocol
	 *
	 * @var string|null
	 */
	protected $protocol;

	/**
	 * Auth login
	 *
	 * @var string|null
	 */
	protected $login;

	/**
	 * Auth password, can be oauth meta build value
	 *
	 * @var string|null
	 */
	protected $password;

	/**
	 * Is password value oauth meta build
	 *
	 * @var bool
	 */
	protected bool $isOauth = false;

	protected ?CloudOAuthRefreshData $cloudOAuthRefreshData = null;

	public function __construct(array $params = null)
	{
		if (!empty($params))
		{
			foreach ($params as $name => $value)
			{
				$setter = sprintf('set%s', $name);
				if (is_callable(array($this, $setter)))
					$this->$setter($value);
			}
		}
	}

	public function setFrom($from)
	{
		$this->from = $from;
		return $this;
	}

	public function setHost($host)
	{
		$this->host = $host;
		return $this;
	}

	public function setPort($port)
	{
		$this->port = (int) $port;
		return $this;
	}

	public function setProtocol($protocol)
	{
		$this->protocol = $protocol;
		return $this;
	}

	public function setLogin($login)
	{
		$this->login = $login;
		return $this;
	}

	public function setPassword($password)
	{
		$this->password = $password;
		return $this;
	}

	/**
	 * Set is OAuth flag
	 *
	 * @param mixed $isOauth Value
	 *
	 * @return $this
	 */
	public function setIsOauth($isOauth): self
	{
		$this->isOauth = (bool)$isOauth;
		return $this;
	}

	public function getFrom()
	{
		return $this->from;
	}

	public function getHost()
	{
		return $this->host;
	}

	public function getPort()
	{
		return $this->port;
	}

	public function getProtocol()
	{
		return $this->protocol;
	}

	public function getLogin()
	{
		return $this->login;
	}

	public function getPassword()
	{
		return $this->password;
	}

	/**
	 * Is password value OAuth meta build
	 *
	 * @return bool
	 */
	public function getIsOauth(): bool
	{
		return $this->isOauth;
	}

	public function getCloudOAuthRefreshData(): ?CloudOAuthRefreshData
	{
		return $this->cloudOAuthRefreshData;
	}

	public function setCloudOAuthRefreshData(?CloudOAuthRefreshData $data): static
	{
		$this->cloudOAuthRefreshData = $data;

		return $this;
	}

	public static function canCheck()
	{
		return Main\Loader::includeModule('mail') && class_exists('Bitrix\Mail\Smtp');
	}

	public function check(&$error = null, Main\ErrorCollection &$errors = null)
	{
		$error = null;
		$errors = null;

		if (!$this->canCheck())
		{
			return null;
		}

		if (Main\ModuleManager::isModuleInstalled('bitrix24'))
		{
			// Private addresses can't be used in the cloud
			$ip = Main\Web\IpAddress::createByName($this->host);
			if ($ip->isPrivate())
			{
				$error = 'SMTP server address is invalid';
				$errors = new Main\ErrorCollection([new Main\Error($error)]);
				return false;
			}
		}

		$client = new Mail\Smtp(
			$this->host,
			$this->port,
			('smtps' === $this->protocol || ('smtp' !== $this->protocol && 465 === $this->port)),
			true,
			$this->login,
			$this->password
		);
		if (method_exists($client, 'setIsOauth'))
		{
			$client->setIsOauth($this->getIsOauth());
		}

		if (!$client->authenticate($error))
		{
			$errors = $client->getErrors();
			return false;
		}

		return true;
	}

}

Youez - 2016 - github.com/yon3zu
LinuXploit