Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../PHPMaile...
File: PHPMailer.php
}
[4000] Fix | Delete
}
[4001] Fix | Delete
[4002] Fix | Delete
return false;
[4003] Fix | Delete
}
[4004] Fix | Delete
[4005] Fix | Delete
/**
[4006] Fix | Delete
* Check if this message has an alternative body set.
[4007] Fix | Delete
*
[4008] Fix | Delete
* @return bool
[4009] Fix | Delete
*/
[4010] Fix | Delete
public function alternativeExists()
[4011] Fix | Delete
{
[4012] Fix | Delete
return !empty($this->AltBody);
[4013] Fix | Delete
}
[4014] Fix | Delete
[4015] Fix | Delete
/**
[4016] Fix | Delete
* Clear queued addresses of given kind.
[4017] Fix | Delete
*
[4018] Fix | Delete
* @param string $kind 'to', 'cc', or 'bcc'
[4019] Fix | Delete
*/
[4020] Fix | Delete
public function clearQueuedAddresses($kind)
[4021] Fix | Delete
{
[4022] Fix | Delete
$this->RecipientsQueue = array_filter(
[4023] Fix | Delete
$this->RecipientsQueue,
[4024] Fix | Delete
static function ($params) use ($kind) {
[4025] Fix | Delete
return $params[0] !== $kind;
[4026] Fix | Delete
}
[4027] Fix | Delete
);
[4028] Fix | Delete
}
[4029] Fix | Delete
[4030] Fix | Delete
/**
[4031] Fix | Delete
* Clear all To recipients.
[4032] Fix | Delete
*/
[4033] Fix | Delete
public function clearAddresses()
[4034] Fix | Delete
{
[4035] Fix | Delete
foreach ($this->to as $to) {
[4036] Fix | Delete
unset($this->all_recipients[strtolower($to[0])]);
[4037] Fix | Delete
}
[4038] Fix | Delete
$this->to = [];
[4039] Fix | Delete
$this->clearQueuedAddresses('to');
[4040] Fix | Delete
}
[4041] Fix | Delete
[4042] Fix | Delete
/**
[4043] Fix | Delete
* Clear all CC recipients.
[4044] Fix | Delete
*/
[4045] Fix | Delete
public function clearCCs()
[4046] Fix | Delete
{
[4047] Fix | Delete
foreach ($this->cc as $cc) {
[4048] Fix | Delete
unset($this->all_recipients[strtolower($cc[0])]);
[4049] Fix | Delete
}
[4050] Fix | Delete
$this->cc = [];
[4051] Fix | Delete
$this->clearQueuedAddresses('cc');
[4052] Fix | Delete
}
[4053] Fix | Delete
[4054] Fix | Delete
/**
[4055] Fix | Delete
* Clear all BCC recipients.
[4056] Fix | Delete
*/
[4057] Fix | Delete
public function clearBCCs()
[4058] Fix | Delete
{
[4059] Fix | Delete
foreach ($this->bcc as $bcc) {
[4060] Fix | Delete
unset($this->all_recipients[strtolower($bcc[0])]);
[4061] Fix | Delete
}
[4062] Fix | Delete
$this->bcc = [];
[4063] Fix | Delete
$this->clearQueuedAddresses('bcc');
[4064] Fix | Delete
}
[4065] Fix | Delete
[4066] Fix | Delete
/**
[4067] Fix | Delete
* Clear all ReplyTo recipients.
[4068] Fix | Delete
*/
[4069] Fix | Delete
public function clearReplyTos()
[4070] Fix | Delete
{
[4071] Fix | Delete
$this->ReplyTo = [];
[4072] Fix | Delete
$this->ReplyToQueue = [];
[4073] Fix | Delete
}
[4074] Fix | Delete
[4075] Fix | Delete
/**
[4076] Fix | Delete
* Clear all recipient types.
[4077] Fix | Delete
*/
[4078] Fix | Delete
public function clearAllRecipients()
[4079] Fix | Delete
{
[4080] Fix | Delete
$this->to = [];
[4081] Fix | Delete
$this->cc = [];
[4082] Fix | Delete
$this->bcc = [];
[4083] Fix | Delete
$this->all_recipients = [];
[4084] Fix | Delete
$this->RecipientsQueue = [];
[4085] Fix | Delete
}
[4086] Fix | Delete
[4087] Fix | Delete
/**
[4088] Fix | Delete
* Clear all filesystem, string, and binary attachments.
[4089] Fix | Delete
*/
[4090] Fix | Delete
public function clearAttachments()
[4091] Fix | Delete
{
[4092] Fix | Delete
$this->attachment = [];
[4093] Fix | Delete
}
[4094] Fix | Delete
[4095] Fix | Delete
/**
[4096] Fix | Delete
* Clear all custom headers.
[4097] Fix | Delete
*/
[4098] Fix | Delete
public function clearCustomHeaders()
[4099] Fix | Delete
{
[4100] Fix | Delete
$this->CustomHeader = [];
[4101] Fix | Delete
}
[4102] Fix | Delete
[4103] Fix | Delete
/**
[4104] Fix | Delete
* Clear a specific custom header by name or name and value.
[4105] Fix | Delete
* $name value can be overloaded to contain
[4106] Fix | Delete
* both header name and value (name:value).
[4107] Fix | Delete
*
[4108] Fix | Delete
* @param string $name Custom header name
[4109] Fix | Delete
* @param string|null $value Header value
[4110] Fix | Delete
*
[4111] Fix | Delete
* @return bool True if a header was replaced successfully
[4112] Fix | Delete
*/
[4113] Fix | Delete
public function clearCustomHeader($name, $value = null)
[4114] Fix | Delete
{
[4115] Fix | Delete
if (null === $value && strpos($name, ':') !== false) {
[4116] Fix | Delete
//Value passed in as name:value
[4117] Fix | Delete
list($name, $value) = explode(':', $name, 2);
[4118] Fix | Delete
}
[4119] Fix | Delete
$name = trim($name);
[4120] Fix | Delete
$value = (null === $value) ? null : trim($value);
[4121] Fix | Delete
[4122] Fix | Delete
foreach ($this->CustomHeader as $k => $pair) {
[4123] Fix | Delete
if ($pair[0] == $name) {
[4124] Fix | Delete
// We remove the header if the value is not provided or it matches.
[4125] Fix | Delete
if (null === $value || $pair[1] == $value) {
[4126] Fix | Delete
unset($this->CustomHeader[$k]);
[4127] Fix | Delete
}
[4128] Fix | Delete
}
[4129] Fix | Delete
}
[4130] Fix | Delete
[4131] Fix | Delete
return true;
[4132] Fix | Delete
}
[4133] Fix | Delete
[4134] Fix | Delete
/**
[4135] Fix | Delete
* Replace a custom header.
[4136] Fix | Delete
* $name value can be overloaded to contain
[4137] Fix | Delete
* both header name and value (name:value).
[4138] Fix | Delete
*
[4139] Fix | Delete
* @param string $name Custom header name
[4140] Fix | Delete
* @param string|null $value Header value
[4141] Fix | Delete
*
[4142] Fix | Delete
* @return bool True if a header was replaced successfully
[4143] Fix | Delete
* @throws Exception
[4144] Fix | Delete
*/
[4145] Fix | Delete
public function replaceCustomHeader($name, $value = null)
[4146] Fix | Delete
{
[4147] Fix | Delete
if (null === $value && strpos($name, ':') !== false) {
[4148] Fix | Delete
//Value passed in as name:value
[4149] Fix | Delete
list($name, $value) = explode(':', $name, 2);
[4150] Fix | Delete
}
[4151] Fix | Delete
$name = trim($name);
[4152] Fix | Delete
$value = (null === $value) ? '' : trim($value);
[4153] Fix | Delete
[4154] Fix | Delete
$replaced = false;
[4155] Fix | Delete
foreach ($this->CustomHeader as $k => $pair) {
[4156] Fix | Delete
if ($pair[0] == $name) {
[4157] Fix | Delete
if ($replaced) {
[4158] Fix | Delete
unset($this->CustomHeader[$k]);
[4159] Fix | Delete
continue;
[4160] Fix | Delete
}
[4161] Fix | Delete
if (strpbrk($name . $value, "\r\n") !== false) {
[4162] Fix | Delete
if ($this->exceptions) {
[4163] Fix | Delete
throw new Exception($this->lang('invalid_header'));
[4164] Fix | Delete
}
[4165] Fix | Delete
[4166] Fix | Delete
return false;
[4167] Fix | Delete
}
[4168] Fix | Delete
$this->CustomHeader[$k] = [$name, $value];
[4169] Fix | Delete
$replaced = true;
[4170] Fix | Delete
}
[4171] Fix | Delete
}
[4172] Fix | Delete
[4173] Fix | Delete
return true;
[4174] Fix | Delete
}
[4175] Fix | Delete
[4176] Fix | Delete
/**
[4177] Fix | Delete
* Add an error message to the error container.
[4178] Fix | Delete
*
[4179] Fix | Delete
* @param string $msg
[4180] Fix | Delete
*/
[4181] Fix | Delete
protected function setError($msg)
[4182] Fix | Delete
{
[4183] Fix | Delete
++$this->error_count;
[4184] Fix | Delete
if ('smtp' === $this->Mailer && null !== $this->smtp) {
[4185] Fix | Delete
$lasterror = $this->smtp->getError();
[4186] Fix | Delete
if (!empty($lasterror['error'])) {
[4187] Fix | Delete
$msg .= $this->lang('smtp_error') . $lasterror['error'];
[4188] Fix | Delete
if (!empty($lasterror['detail'])) {
[4189] Fix | Delete
$msg .= ' ' . $this->lang('smtp_detail') . $lasterror['detail'];
[4190] Fix | Delete
}
[4191] Fix | Delete
if (!empty($lasterror['smtp_code'])) {
[4192] Fix | Delete
$msg .= ' ' . $this->lang('smtp_code') . $lasterror['smtp_code'];
[4193] Fix | Delete
}
[4194] Fix | Delete
if (!empty($lasterror['smtp_code_ex'])) {
[4195] Fix | Delete
$msg .= ' ' . $this->lang('smtp_code_ex') . $lasterror['smtp_code_ex'];
[4196] Fix | Delete
}
[4197] Fix | Delete
}
[4198] Fix | Delete
}
[4199] Fix | Delete
$this->ErrorInfo = $msg;
[4200] Fix | Delete
}
[4201] Fix | Delete
[4202] Fix | Delete
/**
[4203] Fix | Delete
* Return an RFC 822 formatted date.
[4204] Fix | Delete
*
[4205] Fix | Delete
* @return string
[4206] Fix | Delete
*/
[4207] Fix | Delete
public static function rfcDate()
[4208] Fix | Delete
{
[4209] Fix | Delete
//Set the time zone to whatever the default is to avoid 500 errors
[4210] Fix | Delete
//Will default to UTC if it's not set properly in php.ini
[4211] Fix | Delete
date_default_timezone_set(@date_default_timezone_get());
[4212] Fix | Delete
[4213] Fix | Delete
return date('D, j M Y H:i:s O');
[4214] Fix | Delete
}
[4215] Fix | Delete
[4216] Fix | Delete
/**
[4217] Fix | Delete
* Get the server hostname.
[4218] Fix | Delete
* Returns 'localhost.localdomain' if unknown.
[4219] Fix | Delete
*
[4220] Fix | Delete
* @return string
[4221] Fix | Delete
*/
[4222] Fix | Delete
protected function serverHostname()
[4223] Fix | Delete
{
[4224] Fix | Delete
$result = '';
[4225] Fix | Delete
if (!empty($this->Hostname)) {
[4226] Fix | Delete
$result = $this->Hostname;
[4227] Fix | Delete
} elseif (isset($_SERVER) && array_key_exists('SERVER_NAME', $_SERVER)) {
[4228] Fix | Delete
$result = $_SERVER['SERVER_NAME'];
[4229] Fix | Delete
} elseif (function_exists('gethostname') && gethostname() !== false) {
[4230] Fix | Delete
$result = gethostname();
[4231] Fix | Delete
} elseif (php_uname('n') !== false) {
[4232] Fix | Delete
$result = php_uname('n');
[4233] Fix | Delete
}
[4234] Fix | Delete
if (!static::isValidHost($result)) {
[4235] Fix | Delete
return 'localhost.localdomain';
[4236] Fix | Delete
}
[4237] Fix | Delete
[4238] Fix | Delete
return $result;
[4239] Fix | Delete
}
[4240] Fix | Delete
[4241] Fix | Delete
/**
[4242] Fix | Delete
* Validate whether a string contains a valid value to use as a hostname or IP address.
[4243] Fix | Delete
* IPv6 addresses must include [], e.g. `[::1]`, not just `::1`.
[4244] Fix | Delete
*
[4245] Fix | Delete
* @param string $host The host name or IP address to check
[4246] Fix | Delete
*
[4247] Fix | Delete
* @return bool
[4248] Fix | Delete
*/
[4249] Fix | Delete
public static function isValidHost($host)
[4250] Fix | Delete
{
[4251] Fix | Delete
//Simple syntax limits
[4252] Fix | Delete
if (
[4253] Fix | Delete
empty($host)
[4254] Fix | Delete
|| !is_string($host)
[4255] Fix | Delete
|| strlen($host) > 256
[4256] Fix | Delete
|| !preg_match('/^([a-zA-Z\d.-]*|\[[a-fA-F\d:]+\])$/', $host)
[4257] Fix | Delete
) {
[4258] Fix | Delete
return false;
[4259] Fix | Delete
}
[4260] Fix | Delete
//Looks like a bracketed IPv6 address
[4261] Fix | Delete
if (strlen($host) > 2 && substr($host, 0, 1) === '[' && substr($host, -1, 1) === ']') {
[4262] Fix | Delete
return filter_var(substr($host, 1, -1), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false;
[4263] Fix | Delete
}
[4264] Fix | Delete
//If removing all the dots results in a numeric string, it must be an IPv4 address.
[4265] Fix | Delete
//Need to check this first because otherwise things like `999.0.0.0` are considered valid host names
[4266] Fix | Delete
if (is_numeric(str_replace('.', '', $host))) {
[4267] Fix | Delete
//Is it a valid IPv4 address?
[4268] Fix | Delete
return filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false;
[4269] Fix | Delete
}
[4270] Fix | Delete
//Is it a syntactically valid hostname (when embeded in a URL)?
[4271] Fix | Delete
return filter_var('http://' . $host, FILTER_VALIDATE_URL) !== false;
[4272] Fix | Delete
}
[4273] Fix | Delete
[4274] Fix | Delete
/**
[4275] Fix | Delete
* Get an error message in the current language.
[4276] Fix | Delete
*
[4277] Fix | Delete
* @param string $key
[4278] Fix | Delete
*
[4279] Fix | Delete
* @return string
[4280] Fix | Delete
*/
[4281] Fix | Delete
protected function lang($key)
[4282] Fix | Delete
{
[4283] Fix | Delete
if (count($this->language) < 1) {
[4284] Fix | Delete
$this->setLanguage(); //Set the default language
[4285] Fix | Delete
}
[4286] Fix | Delete
[4287] Fix | Delete
if (array_key_exists($key, $this->language)) {
[4288] Fix | Delete
if ('smtp_connect_failed' === $key) {
[4289] Fix | Delete
//Include a link to troubleshooting docs on SMTP connection failure.
[4290] Fix | Delete
//This is by far the biggest cause of support questions
[4291] Fix | Delete
//but it's usually not PHPMailer's fault.
[4292] Fix | Delete
return $this->language[$key] . ' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting';
[4293] Fix | Delete
}
[4294] Fix | Delete
[4295] Fix | Delete
return $this->language[$key];
[4296] Fix | Delete
}
[4297] Fix | Delete
[4298] Fix | Delete
//Return the key as a fallback
[4299] Fix | Delete
return $key;
[4300] Fix | Delete
}
[4301] Fix | Delete
[4302] Fix | Delete
/**
[4303] Fix | Delete
* Build an error message starting with a generic one and adding details if possible.
[4304] Fix | Delete
*
[4305] Fix | Delete
* @param string $base_key
[4306] Fix | Delete
* @return string
[4307] Fix | Delete
*/
[4308] Fix | Delete
private function getSmtpErrorMessage($base_key)
[4309] Fix | Delete
{
[4310] Fix | Delete
$message = $this->lang($base_key);
[4311] Fix | Delete
$error = $this->smtp->getError();
[4312] Fix | Delete
if (!empty($error['error'])) {
[4313] Fix | Delete
$message .= ' ' . $error['error'];
[4314] Fix | Delete
if (!empty($error['detail'])) {
[4315] Fix | Delete
$message .= ' ' . $error['detail'];
[4316] Fix | Delete
}
[4317] Fix | Delete
}
[4318] Fix | Delete
[4319] Fix | Delete
return $message;
[4320] Fix | Delete
}
[4321] Fix | Delete
[4322] Fix | Delete
/**
[4323] Fix | Delete
* Check if an error occurred.
[4324] Fix | Delete
*
[4325] Fix | Delete
* @return bool True if an error did occur
[4326] Fix | Delete
*/
[4327] Fix | Delete
public function isError()
[4328] Fix | Delete
{
[4329] Fix | Delete
return $this->error_count > 0;
[4330] Fix | Delete
}
[4331] Fix | Delete
[4332] Fix | Delete
/**
[4333] Fix | Delete
* Add a custom header.
[4334] Fix | Delete
* $name value can be overloaded to contain
[4335] Fix | Delete
* both header name and value (name:value).
[4336] Fix | Delete
*
[4337] Fix | Delete
* @param string $name Custom header name
[4338] Fix | Delete
* @param string|null $value Header value
[4339] Fix | Delete
*
[4340] Fix | Delete
* @return bool True if a header was set successfully
[4341] Fix | Delete
* @throws Exception
[4342] Fix | Delete
*/
[4343] Fix | Delete
public function addCustomHeader($name, $value = null)
[4344] Fix | Delete
{
[4345] Fix | Delete
if (null === $value && strpos($name, ':') !== false) {
[4346] Fix | Delete
//Value passed in as name:value
[4347] Fix | Delete
list($name, $value) = explode(':', $name, 2);
[4348] Fix | Delete
}
[4349] Fix | Delete
$name = trim($name);
[4350] Fix | Delete
$value = (null === $value) ? '' : trim($value);
[4351] Fix | Delete
//Ensure name is not empty, and that neither name nor value contain line breaks
[4352] Fix | Delete
if (empty($name) || strpbrk($name . $value, "\r\n") !== false) {
[4353] Fix | Delete
if ($this->exceptions) {
[4354] Fix | Delete
throw new Exception($this->lang('invalid_header'));
[4355] Fix | Delete
}
[4356] Fix | Delete
[4357] Fix | Delete
return false;
[4358] Fix | Delete
}
[4359] Fix | Delete
$this->CustomHeader[] = [$name, $value];
[4360] Fix | Delete
[4361] Fix | Delete
return true;
[4362] Fix | Delete
}
[4363] Fix | Delete
[4364] Fix | Delete
/**
[4365] Fix | Delete
* Returns all custom headers.
[4366] Fix | Delete
*
[4367] Fix | Delete
* @return array
[4368] Fix | Delete
*/
[4369] Fix | Delete
public function getCustomHeaders()
[4370] Fix | Delete
{
[4371] Fix | Delete
return $this->CustomHeader;
[4372] Fix | Delete
}
[4373] Fix | Delete
[4374] Fix | Delete
/**
[4375] Fix | Delete
* Create a message body from an HTML string.
[4376] Fix | Delete
* Automatically inlines images and creates a plain-text version by converting the HTML,
[4377] Fix | Delete
* overwriting any existing values in Body and AltBody.
[4378] Fix | Delete
* Do not source $message content from user input!
[4379] Fix | Delete
* $basedir is prepended when handling relative URLs, e.g. <img src="/images/a.png"> and must not be empty
[4380] Fix | Delete
* will look for an image file in $basedir/images/a.png and convert it to inline.
[4381] Fix | Delete
* If you don't provide a $basedir, relative paths will be left untouched (and thus probably break in email)
[4382] Fix | Delete
* Converts data-uri images into embedded attachments.
[4383] Fix | Delete
* If you don't want to apply these transformations to your HTML, just set Body and AltBody directly.
[4384] Fix | Delete
*
[4385] Fix | Delete
* @param string $message HTML message string
[4386] Fix | Delete
* @param string $basedir Absolute path to a base directory to prepend to relative paths to images
[4387] Fix | Delete
* @param bool|callable $advanced Whether to use the internal HTML to text converter
[4388] Fix | Delete
* or your own custom converter
[4389] Fix | Delete
* @return string The transformed message body
[4390] Fix | Delete
*
[4391] Fix | Delete
* @throws Exception
[4392] Fix | Delete
*
[4393] Fix | Delete
* @see PHPMailer::html2text()
[4394] Fix | Delete
*/
[4395] Fix | Delete
public function msgHTML($message, $basedir = '', $advanced = false)
[4396] Fix | Delete
{
[4397] Fix | Delete
preg_match_all('/(?<!-)(src|background)=["\'](.*)["\']/Ui', $message, $images);
[4398] Fix | Delete
if (array_key_exists(2, $images)) {
[4399] Fix | Delete
if (strlen($basedir) > 1 && '/' !== substr($basedir, -1)) {
[4400] Fix | Delete
//Ensure $basedir has a trailing /
[4401] Fix | Delete
$basedir .= '/';
[4402] Fix | Delete
}
[4403] Fix | Delete
foreach ($images[2] as $imgindex => $url) {
[4404] Fix | Delete
//Convert data URIs into embedded images
[4405] Fix | Delete
//e.g. "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
[4406] Fix | Delete
$match = [];
[4407] Fix | Delete
if (preg_match('#^data:(image/(?:jpe?g|gif|png));?(base64)?,(.+)#', $url, $match)) {
[4408] Fix | Delete
if (count($match) === 4 && static::ENCODING_BASE64 === $match[2]) {
[4409] Fix | Delete
$data = base64_decode($match[3]);
[4410] Fix | Delete
} elseif ('' === $match[2]) {
[4411] Fix | Delete
$data = rawurldecode($match[3]);
[4412] Fix | Delete
} else {
[4413] Fix | Delete
//Not recognised so leave it alone
[4414] Fix | Delete
continue;
[4415] Fix | Delete
}
[4416] Fix | Delete
//Hash the decoded data, not the URL, so that the same data-URI image used in multiple places
[4417] Fix | Delete
//will only be embedded once, even if it used a different encoding
[4418] Fix | Delete
$cid = substr(hash('sha256', $data), 0, 32) . '@phpmailer.0'; //RFC2392 S 2
[4419] Fix | Delete
[4420] Fix | Delete
if (!$this->cidExists($cid)) {
[4421] Fix | Delete
$this->addStringEmbeddedImage(
[4422] Fix | Delete
$data,
[4423] Fix | Delete
$cid,
[4424] Fix | Delete
'embed' . $imgindex,
[4425] Fix | Delete
static::ENCODING_BASE64,
[4426] Fix | Delete
$match[1]
[4427] Fix | Delete
);
[4428] Fix | Delete
}
[4429] Fix | Delete
$message = str_replace(
[4430] Fix | Delete
$images[0][$imgindex],
[4431] Fix | Delete
$images[1][$imgindex] . '="cid:' . $cid . '"',
[4432] Fix | Delete
$message
[4433] Fix | Delete
);
[4434] Fix | Delete
continue;
[4435] Fix | Delete
}
[4436] Fix | Delete
if (
[4437] Fix | Delete
//Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
[4438] Fix | Delete
!empty($basedir)
[4439] Fix | Delete
//Ignore URLs containing parent dir traversal (..)
[4440] Fix | Delete
&& (strpos($url, '..') === false)
[4441] Fix | Delete
//Do not change urls that are already inline images
[4442] Fix | Delete
&& 0 !== strpos($url, 'cid:')
[4443] Fix | Delete
//Do not change absolute URLs, including anonymous protocol
[4444] Fix | Delete
&& !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url)
[4445] Fix | Delete
) {
[4446] Fix | Delete
$filename = static::mb_pathinfo($url, PATHINFO_BASENAME);
[4447] Fix | Delete
$directory = dirname($url);
[4448] Fix | Delete
if ('.' === $directory) {
[4449] Fix | Delete
$directory = '';
[4450] Fix | Delete
}
[4451] Fix | Delete
//RFC2392 S 2
[4452] Fix | Delete
$cid = substr(hash('sha256', $url), 0, 32) . '@phpmailer.0';
[4453] Fix | Delete
if (strlen($basedir) > 1 && '/' !== substr($basedir, -1)) {
[4454] Fix | Delete
$basedir .= '/';
[4455] Fix | Delete
}
[4456] Fix | Delete
if (strlen($directory) > 1 && '/' !== substr($directory, -1)) {
[4457] Fix | Delete
$directory .= '/';
[4458] Fix | Delete
}
[4459] Fix | Delete
if (
[4460] Fix | Delete
$this->addEmbeddedImage(
[4461] Fix | Delete
$basedir . $directory . $filename,
[4462] Fix | Delete
$cid,
[4463] Fix | Delete
$filename,
[4464] Fix | Delete
static::ENCODING_BASE64,
[4465] Fix | Delete
static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION))
[4466] Fix | Delete
)
[4467] Fix | Delete
) {
[4468] Fix | Delete
$message = preg_replace(
[4469] Fix | Delete
'/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui',
[4470] Fix | Delete
$images[1][$imgindex] . '="cid:' . $cid . '"',
[4471] Fix | Delete
$message
[4472] Fix | Delete
);
[4473] Fix | Delete
}
[4474] Fix | Delete
}
[4475] Fix | Delete
}
[4476] Fix | Delete
}
[4477] Fix | Delete
$this->isHTML();
[4478] Fix | Delete
//Convert all message body line breaks to LE, makes quoted-printable encoding work much better
[4479] Fix | Delete
$this->Body = static::normalizeBreaks($message);
[4480] Fix | Delete
$this->AltBody = static::normalizeBreaks($this->html2text($message, $advanced));
[4481] Fix | Delete
if (!$this->alternativeExists()) {
[4482] Fix | Delete
$this->AltBody = 'This is an HTML-only message. To view it, activate HTML in your email application.'
[4483] Fix | Delete
. static::$LE;
[4484] Fix | Delete
}
[4485] Fix | Delete
[4486] Fix | Delete
return $this->Body;
[4487] Fix | Delete
}
[4488] Fix | Delete
[4489] Fix | Delete
/**
[4490] Fix | Delete
* Convert an HTML string into plain text.
[4491] Fix | Delete
* This is used by msgHTML().
[4492] Fix | Delete
* Note - older versions of this function used a bundled advanced converter
[4493] Fix | Delete
* which was removed for license reasons in #232.
[4494] Fix | Delete
* Example usage:
[4495] Fix | Delete
*
[4496] Fix | Delete
* ```php
[4497] Fix | Delete
* //Use default conversion
[4498] Fix | Delete
* $plain = $mail->html2text($html);
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function