﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL Server&#8217;da Mail Kontrolü &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/sql-serverda-mail-kontrolu/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Thu, 20 Oct 2022 05:02:37 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>SQL Server&#8217;da Mail Kontrolü Yapan Fonksiyon</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-mail-kontrolu-yapan-fonksiyon</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Thu, 20 Oct 2022 05:02:37 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Mail Kontrolü]]></category>
		<category><![CDATA[SQL Server'da Mail Kontrolü]]></category>
		<category><![CDATA[SQL Server'da Mail Kontrolü Yapan Fonksiyon]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=14541</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server’da mail kontrolü yapan fonksiyon ile ilgili bilgi vermeye çalışacağım. SQL Server’da bazı durumlarda elinizde bulunan mail adresini kontrol etmek...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server’da mail kontrolü yapan fonksiyon ile ilgili bilgi vermeye çalışacağım.</p>
<p>SQL Server’da bazı durumlarda elinizde bulunan mail adresini kontrol etmek isteyebilirsiniz.</p>
<p>Aşağıdaki fonksiyonu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.</p>
<pre class="line-numbers"><code class="language-sql">CREATE FUNCTION fn_eMailKontrol
(
    @EmailAddr VARCHAR(360) 
)
RETURNS BIT 

AS
BEGIN
    DECLARE @AlphabetPlus VARCHAR(255),
            @Max INT,
            @Pos INT, 
            @OK BIT;  
 
    IF @EmailAddr IS NULL
       OR @EmailAddr NOT LIKE '[0-9a-zA-Z]%@__%.__%'
       OR @EmailAddr LIKE '%@%@%'
       OR @EmailAddr LIKE '%..%'
       OR @EmailAddr LIKE '%.@'
       OR @EmailAddr LIKE '%@.'
       OR @EmailAddr LIKE '%@%.-%'
       OR @EmailAddr LIKE '%@%-.%'
       OR @EmailAddr LIKE '%@-%'
       OR CHARINDEX(' ', LTRIM(RTRIM(@EmailAddr))) &gt; 0
        RETURN (0);

    DECLARE @AfterLastDot VARCHAR(360);
    DECLARE @AfterArobase VARCHAR(360);
    DECLARE @BeforeArobase VARCHAR(360);
    DECLARE @HasDomainTooLong BIT = 0;

    SET @AfterLastDot = REVERSE(SUBSTRING(REVERSE(@EmailAddr), 0, CHARINDEX('.', REVERSE(@EmailAddr))));
    IF LEN(@AfterLastDot) NOT
       BETWEEN 2 AND 17
        RETURN (0);

    SET @AfterArobase = REVERSE(SUBSTRING(REVERSE(@EmailAddr), 0, CHARINDEX('@', REVERSE(@EmailAddr))));
    IF LEN(@AfterArobase) NOT
       BETWEEN 2 AND 255
        RETURN (0);

    SELECT TOP 1
           @BeforeArobase = value
    FROM STRING_SPLIT(@EmailAddr, '@');
    IF LEN(@AfterArobase) NOT
       BETWEEN 2 AND 255
        RETURN (0);

    SELECT TOP 1
           @HasDomainTooLong = 1
    FROM STRING_SPLIT(@AfterArobase, '.')
    WHERE LEN(value) &gt; 63;
    IF @HasDomainTooLong = 1
        RETURN (0);

    SELECT @AlphabetPlus = 'abcdefghijklmnopqrstuvwxyz01234567890!#$%&amp;‘*+-/=?^_`.{|}~',
           @Max = LEN(@BeforeArobase),
           @Pos = 0,
           @OK = 1;


    WHILE @Pos &lt; @Max AND @OK = 1
    BEGIN
        SET @Pos = @Pos + 1;
        IF @AlphabetPlus NOT LIKE '%' + SUBSTRING(@BeforeArobase, @Pos, 1) + '%'
            SET @OK = 0;
    END;

    IF @OK = 0
        RETURN (0);

    --Control de la partie domaine en detail
    SELECT @AlphabetPlus = 'abcdefghijklmnopqrstuvwxyz01234567890-.',
           @Max = LEN(@AfterArobase),
           @Pos = 0,
           @OK = 1;

    WHILE @Pos &lt; @Max AND @OK = 1
    BEGIN
        SET @Pos = @Pos + 1;
        IF @AlphabetPlus NOT LIKE '%' + SUBSTRING(@AfterArobase, @Pos, 1) + '%'
            SET @OK = 0;
    END;

    IF @OK = 0
        RETURN (0);

    RETURN (1);

END;
GO


--Kullanımı


SELECT dbo.fn_eMailKontrol('y.selimkart@gmail.com')</code></pre>
<p>Yukarıdaki fonksiyonu oluşturup çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-14544 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2022/10/sql-serverda-mail-kontrolu-yapan-fonksiyon-1.jpg" alt="" width="700" height="459" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2022/10/sql-serverda-mail-kontrolu-yapan-fonksiyon-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2022/10/sql-serverda-mail-kontrolu-yapan-fonksiyon-1-315x207.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2022/10/sql-serverda-mail-kontrolu-yapan-fonksiyon-1-458x300.jpg 458w, https://sqlserveregitimleri.com/wp-content/uploads/2022/10/sql-serverda-mail-kontrolu-yapan-fonksiyon-1-206x135.jpg 206w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere email adresinin geçerli bir mail adresi olup olmadığı görülmüş oldu.</p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 275</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
