Thursday, March 11, 2021

503 This mail server requires authentication when attempting to send to a non-local e-mail address.

 Server error: '503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server.'

and Error:

Your message did not reach some or all of the intended recipients.

      Subject: test

      Sent: 10-03-2021 15:15

The following recipient(s) cannot be reached:

 'example@domain.com' on 10-03-2021 15:15


This error occurs mostly in Windows system. The users can send emails to local domain systems but can’t send emails to external addresses. Why they do server sends this message: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. To resolve this error one should check the settings of the mail client or should contact the administrator for verification of address or domain are defined for the server or not.

Cause
  • SMTP server needs authentication for sending the mail to the external or non-local address. SMPT authentication and server are not configured by the email client.
  • Firewall or proxy software of the email doesn’t allow the SMTP authentication.
  • The email server may not match the settings of the server or have an incorrect credential configuration.
Symptoms
  • On Windows System, unable send mail through PHP scripts.
  • You will the following error while accessing the script of the web browser if you have defined ini_set ( ‘ display_error ’ , 1 );
SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server.
  • Addresses in the local host are not be added to Whitelist of the Mail Server Settings. Mail Server Settings is available in the Tools & Settings.
  • The error specified above is seen in the Activity available in the Logs of the SMTP server.
Resolution

  1. Log on to the Plesk.
  2. In the Whitelist add the address of the local host.
Go to Tools & Settings >> Mail Server Settings >> White List >> Add Address: Check the following entries


mail1.png

Code:
CONFIG_TEXT: 127.0.0.1/32
::1/128
Mail will not be counted to Outgoing Mail Limit, when you add localhost address to the whitelist. If the address of the local host is not whitelisted, you need to add correct authentication credentials in the script of the mail. If this does not work, you should follow subsequent steps.
  • Connect the Plesk server through RDP.
  • In the Mail Enable option, launch MailEnable Management console. MailEnable is available in All Programs of Windows Start
  • Right click on the SMTP, which is in the MailEnable Management console and open the properties.

  • Move on to the Security tab in the SMTP Properties. Now disable the “Disable all catchalls” and “Authenticated senders must use the address from their post office” options and click on Apply button.
mail3.png

  • Select Denied relay rights option from Privileged IPs… available in the Relay tab. You can send emails through the server from a web page or web server. To do this you have to add the IP address of the users who can send the mail. Click Add button and enter the IP address of the user and click Close. Now click Ok button to save the changes.
mail4.png

  • At last, you have to restart the services of MailEnable SMTP Connector. To do this go to Servers >> localhost >> System >> Services Status in the MailEnable Management console. There you have to select the MailEnable SMTP Connector and then click Restart option.




Wednesday, February 17, 2021

SQL SERVER - How to capitalize the first letter of a record in SQL

 Cast your ntext to nvarchar(max) and do the upper and left operations. Sample below.

SELECT UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))))  
FROM dbo.Template_Survey;

Following should work for update.

Update dbo.Template_Survey SET Comments = 
UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))));  

Sunday, February 14, 2021

google - What is Bounce rate, Domain Rating (DR), & ctr?

Bounce rate


Bounce rate represents the percentage of visitors who enter the site and then leave ("bounce") rather than continuing to view other pages within the same site

Bounce rate (%) = Visits that access only a single page (#) ÷ Total visits (#) to the website

Example

If user visits single page then bounce rate will be

Bounce rate = 1/1*100 = 100%



If user visits two page then bounce rate will be

Bounce rate = 1/2*100 = 50%

What Is Adsense Click-Through Rate (CTR)?

Google Adsense Click-through Rate (CTR) represents the number of clicks on your ads against the number of times they’ve been shown o your site visitors.

For example, 
If your ads get 5 clicks out of 100 views (impressions) your Adsense CTR would be 5%.

Here’s the simple formula Google uses to calculate Adsense CTR

Total Number of Ad Clicks ÷ Total Number of Impressions = Click-Through Rate (CTR)

CTR = No. of clicks / No. of exposures
CTR% = No. of clicks * 100 / No. of exposures


What does Domain Rating (DR) mean?


Domain Rating (DR) is a measure of a website's authority based on its backlink profile. The scale runs from zero to a hundred. Generally speaking, the higher this number, the stronger and more authoritative the site is.

How is it calculated?

Domain Rating (DR) looks at the quality and quantity of external backlinks to a website. It doesn't take into account any other variables like link spam, traffic, domain age, etc.

How should I use it?

Domain Rating (DR) means very little in isolation. However, it does provide an excellent way to compare the relative authority of two or more websites in the same niche. If a site has a lower DR than its competitors, then that may affect its ability to rank for relevant keywords in search engines.

How can I increase my Domain Rating (DR)?

Get more high-quality backlinks to your website. That's the only way.

Saturday, February 13, 2021

The script has an unsupported MIME type ('text/html').

ServiceWorker: The script has an unsupported MIME type (chrome-extension) 


The Error is showing because of the incorrect path and service worker is not accessible.

Path defined for js is not correct, might be you have taken relative path and this is vary on different pages.

Replacing:

'service-worker.js'

with:

'/service-worker.js' OR './service-worker.js'

in (navigator.serviceWorker.register('/service-worker.js')


The service worker file is not present at http://domain.com/service-worker.js so the server is returning index.html instead. Then the registration function has no idea of what to do with a index.html file and tells you that the MIME-type is not correct. 

A quick fix would be to copy the service-worker.js file to the public folder so that when you hit http://domain.com/service-worker.js you see the file in the browser. 

Remember to go to ChromeDev > Applications > ServiceWorkers and hit Unsubscribe. in order to remove the errored one. Remember also disable cache 

Thursday, February 4, 2021

Install Google Analytics to WordPress Without a Plugin

 

Install Google Analytics to WordPress Without a Plugin


In order for Google Analytics to start tracking your visitors, the tracking code mentioned above needs to be present on every page of your site you want to track user behavior on. Usually, that’s all of them. Here’s how you can achieve that manually.

Option A: Insert the Code Into header.php
One of the main ways to add the tracking code to your site is to insert it into your header. This way, it will load on every page.

Most standard themes have a header.php file that is responsible for outputting the site header section. So, you can simply input the Google Analytics code here.

However, when you make changes to theme files, be aware that it’s always best to do it in a child theme. Otherwise, they will get lost when you update your main theme. Child themes are super useful in general and you should definitely read up about them. Also, don’t forget to back up your WordPress site when making any changes like this.

Once you have created your child theme, simply copy the header.php from the main theme into it and start editing. You can do that directly in the WordPress back end via Appearance > Theme Editor.

add google analytics tracking code to wordpress header file via the theme editor Copy and paste the tracking code from Google Analytics into header.php right after the opening <head> tag.
Also, make sure the code is wrapped in <script>...</script> brackets! Otherwise, browsers won’t recognize it for what it is. That’s it! Now save and you are good.


Option B: Use functions.php
Another possibility to add Google Analytics to WordPress without a plugin is to use the functions file. You can do the same thing as we did above, however, instead of adding the tracking code to header.php directly, you insert it into the head section via a function.

To do so, simply edit your (child) theme’s functions.php file and add the following piece of code (but use your own measurement or tracking ID instead of ours):

function ns_google_analytics() { ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B175YGY1T1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());


gtag('config', 'G-B175YGY1T1');
</script>
<?php
}


add_action( 'wp_head', 'ns_google_analytics', 10 );
Save, upload, and from that moment, Google Analytics should start tracking what’s going on on your site.

Wednesday, February 3, 2021

window.location.href not working - asp.net

 window.location.href not working


If we are calling function through a submit button. This may be the reason why the browser does not redirect. It will run the code in the function and then submit the page instead of redirect. 

In this case Either
1. change the type tag of your button to button
        2. you just need to add "return false;" at the bottom of your function

Sunday, January 31, 2021

Uncaught (in promise) TypeError: Failed to execute 'Cache' on 'addAll': Request failed

 Error in Service Worker.

Uncaught (in promise) TypeError: Failed to execute 'Cache' on 'addAll': Request failed.

Main cause of this is typo in one of the filenames/ OR file is not exists that had added to cached_urls. It did not match the name of the real file so I kept getting the error.

I Got this issue due to typo in the filename and found it by quickly setting cached_urls to an empty list and found that the error went away.

Monday, January 25, 2021

Advanced SEO - Separate URLs for Mobile and desktop applications

We can configure Separate URLs for Mobile and desktop applications

Annotations for desktop and mobile URLs

To help Google algorithms understand separate mobile URLs, we recommend using the following annotations:

  1. On the desktop page, add a rel="alternate" tag pointing to the corresponding mobile URL. This helps Googlebot discover the location of your site's mobile pages.
  2. On the mobile page, add a rel="canonical" tag pointing to the corresponding desktop URL.

google support two methods to have this annotation: in the HTML of the pages themselves and in sitemaps. For example, suppose that the desktop URL is http://example.com/page-1 and the corresponding mobile URL is http://m.example.com/page-1. The annotations in this example would be as follows.

Annotations in the HTML

On the desktop page (http://www.example.com/page-1), add the following annotation:

<link rel="alternate" media="only screen and (max-width: 640px)"
 
href="http://m.example.com/page-1">

On the mobile page (http://m.example.com/page-1), the required annotation should be:

<link rel="canonical" href="http://www.example.com/page-1">

This rel="canonical" tag on the mobile URL pointing to the desktop page is required.

Annotations in sitemaps

Google support including the rel="alternate" annotation for the desktop pages in sitemaps like this:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
 
<url>
   
<loc>http://www.example.com/page-1/</loc>
   
<xhtml:link rel="alternate" media="only screen and (max-width: 640px)"
   
href="http://m.example.com/page-1" />
 
</url>
</urlset>

The required rel="canonical" tag on the mobile URL should still be added to the mobile page's HTML.

Tuesday, January 19, 2021

Plesk - Upgrade the .net Framework to 4.7.2 OR 4.8

 Steps to Upgrade the .net Framework to 4.7.2 OR 4.8

1. First Download the .NET Framework from https://dotnet.microsoft.com/download/dotnet-framework 

2. Install on the Server.

3. Login to the Plesk and go to "Tools & Settings" > "Server Components" and refresh the components using the refresh button



4. After update, it will reflect in "Web Script" section at the server component page.


All done!!!

Tuesday, January 12, 2021

How to split column with delimiter into two columns in SQL Server Split

We can use Case and  CHARINDEX to split column with delimiter into two columns in SQL Server

select 
    case when CHARINDEX('_',name)>0 
         then SUBSTRING(name,1,CHARINDEX('_',name)-1) 
         else name end firstname, 
    CASE WHEN CHARINDEX('_',name)>0 
         THEN SUBSTRING(name,CHARINDEX('_',name)+1,len(name))  
         ELSE NULL END as lastname
from emp

you can use CASE command to control is last name available.


MS SQL Server:

Query 1:

declare @t table (id int, name  varchar(50))

insert into @t (id,name) values( 1    ,'abc_rao')
insert into @t (id,name) values( 2    ,'nani')
insert into @t (id,name) values( 3    ,'hari_babu')
insert into @t (id,name) values( 4    ,'kalibabu')
insert into @t (id,name) values( 5    ,'ab_tan')

select 
    case when CHARINDEX('_',name)>0 
         then SUBSTRING(name,1,CHARINDEX('_',name)-1) 
         else name end firstname, 
    CASE WHEN CHARINDEX('_',name)>0 
         THEN SUBSTRING(name,CHARINDEX('_',name)+1,len(name))  
         ELSE NULL END as lastname
from @t

Results:

| FIRSTNAME | LASTNAME |
|-----------|----------|
|       abc |      rao |
|      nani |   (null) |
|      hari |     babu |
|  kalibabu |   (null) |
|        ab |      tan |