مقدمة

يمكن تفعيل هذه الميزة لإرسال إشعارات تنبيه عبر البريد الإلكتروني، كإرسال فاتورة للعميل تلقائياً، عند إضافة فاتورة مبيعات تخصه، حيث تم استعراض هذا المثال في هذا الفيديو:

متطلبات تفعيل الخدمة

  1. يجب أن تخصص حساب Gmail لهذه الخدمة.
  2. يجب تسجيل الدخول إلى حساب Gmail الجديد ثم فتح الرابط التالي:
    https://myaccount.google.com/lesssecureapps
    ثم تفعيل خيار: “Allow less secure apps” – السماح بالتطبيقات الأقل أماناً.
  3. يجب تنفيذ أكواد SQL التالية عبر برنامج مساعد مثل SQL Server Management Studio حيث يمكن تحميله مجاناً عبر هذا الرابط: https://aka.ms/ssmsfullsetup

الخطوة الأولى

  1. افتح استعلام SQL جديد في SQL Server Management Studio
  2. نفذ هذا الاستعلام:
				
					sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'Database Mail XPs', 1;  
GO  
RECONFIGURE  
GO 

				
			

الخطوة الثانية

1. نفذ هذا الاستعلام بعد تغيير قيم المتغيرات لـ @email_address , @username ,  @password

				
					execute msdb.dbo.sysmail_add_account_sp
@account_name = 'XtraMail',
@description = 'send email using SQL',
@email_address = 'YourEmail@gmail.com',
@display_name = 'XtraMail',
@username = 'Youremail@gmail.com',
@password='xxxxxxxxxx',
@mailserver_name = 'smtp.gmail.com',
@port = '587',
@enable_ssl = 1

				
			

2. نفذ هذه الاستعلام:

				
					execute msdb.dbo.sysmail_add_profile_sp
@profile_name = 'XtraMail',
@description = 'profile used to send email'

				
			

3. نفذ هذا الاستعلام:

				
					execute msdb.dbo.sysmail_add_profileaccount_sp 
@profile_name = 'XtraMail',
@account_name = 'XtraMail',
@sequence_number = 1 

				
			

4. نفذ هذا الاستعلام:

				
					execute msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'XtraMail',
@principal_name = 'public',
@is_default = 1

				
			

الخطوة الثالثة: إرسال رسالة تجربة

1. نفذ هذا الاستعلام بعد تعديل عنوان الإيميل الموجود في @recipients وضع مكانه عنوان الإيميل الذي ستجرب الإرسال له:

				
					exec msdb.dbo.sp_send_dbmail @profile_name = 'XtraMail',
@recipients = 'test@test.com',
@subject = 'Test Message',
@body='Xtra Email Service Test Success',
@body_format = 'HTML';

				
			

2. إذا لم تنجح تجربة إرسال الإيميل التجربة، يمكن حذف الإعدادات بتنفيذ الاستعلام التالي، ثم إعادة تنفيذ الاستعلامات الموجودة في الخطوة الثانية:

				
					EXECUTE msdb.dbo.sysmail_delete_account_sp
    @account_name = 'XtraMail'


EXECUTE msdb.dbo.sysmail_delete_profile_sp
    @profile_name = 'XtraMail';

				
			

الخطوة الرابعة: إنشاء إجراءات SQL

1. نفذ هذه الاستعلام:

				
					create procedure [dbo].[Email] (@profile nvarchar(max) , @recerver nvarchar(max) , @subject  nvarchar(max) , @boday 
nvarchar(max))
as begin 
exec msdb.dbo.sp_send_dbmail @profile_name = @profile,
@recipients = @recerver ,
@subject = @subject,
@body = @boday ,
@body_format = 'HTML'
End

				
			

2. نفذ هذا الاستعلام:

				
					create procedure [dbo].[AutoEmailing] ( @22guide uniqueidentifier)
as begin

Declare @a nvarchar(Max) 
Set @a = 'XtraMail'

Declare @mail nvarchar(Max)
Set @mail = (Select email From tbl016 Where CardGuide = 
(Select tbl022.AgentGuide From tbl022 Where CardGuide = @22guide))

Declare @supject nvarchar(Max)
Set @supject = (Select AgentName
From tbl016 Where CardGuide = 
(Select tbl022.AgentGuide From tbl022 Where CardGuide = @22guide))

declare @agentGuide uniqueidentifier
set @agentGuide = (select tbl022.AgentGuide  from tbl022 where CardGuide = @22guide)

declare @countrow nvarchar(max)



set @countrow = (select count(*) from qry101 where qry101.InvoiceGuide = @22guide)

declare @sumQuan nvarchar(max)
set @sumQuan = (select sum(qry101.Quantity) from qry101 where InvoiceGuide = @22guide)

declare @TotalTax nvarchar(max)
set @TotalTax = (select sum(qry101.TaxValue) from qry101 where InvoiceGuide = @22guide)

declare @blaanceFloat float
set @blaanceFloat = isnull((select sum(tbl012.Debit - tbl012.Credit) from tbl012 where AccountGuide = 
(select tbl016.AccountID from TBL016 where CardGuide = @agentGuide)),0)

declare @balanceAgent nvarchar(max) 
set @balanceAgent = @blaanceFloat


declare @billkind nvarchar (max)
set @billkind = (select top 1 qry101.InvoiceName from qry101 where InvoiceGuide = @22guide)

declare @discount float 
set @discount = (select sum(qry101.ItemDiscountValueRate) from qry101 where InvoiceGuide = @22guide)

declare @tax float
set @tax = (select sum(Qry101.ItemTaxValueRate) from qry101 where InvoiceGuide = @22guide)

declare @invoiceValuefloat float
set @invoiceValuefloat = (select ((select (select sum(qry101.ItemTotalValue) from Qry101 where InvoiceGuide = @22guide) - @discount) + @tax))

declare @invoiceValue nvarchar (max) 
set @invoiceValue = @invoiceValuefloat

declare @finalDebitfloat  float 
set @finalDebitfloat = @invoiceValuefloat + @blaanceFloat 

declare @finalDebitAgnt  nvarchar(max) 
set @finalDebitAgnt = @finalDebitfloat 

declare @billdate date
set @billdate = (select top 1 qry101.BillDate from qry101 where InvoiceGuide = @22guide)

declare @curency nvarchar(max)
set @curency = (select top 1 qry101.CurrencyName from qry101 where InvoiceGuide = @22guide)
declare @fullSupject nvarchar(max)
set @fullSupject = N'السيد ' + @supject + N' المحترم '

declare @paymethod int
set @paymethod = (select tbl022.PayMethod from tbl022 where CardGuide = @22guide)



Declare @body nvarchar(Max)
if @paymethod = 2 begin
Set @body = N'<p style=''text-align: center''><img alt="Xtra Logo" src  = ''https://xtra.co.com/Tools/xtraLogoEmail.png'' style=''width:100%; max-width:240px''/>'+
+ '</p>'+
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>عزيزنا العميل يسعدنا خدمتك و  نود إعلامك بانه تم إضافة فاتورة نوع '+@billkind+' </p>' 
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>بتاريخ ' + 
' ' + convert(nvarchar(max),@billdate)+'</p>' +
N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>بالتفاصيل التالية'+'</P>' + 
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع صافي الفاتورة' + ' ' +
 @invoiceValue + ' ' + @curency + '</p>' 
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع أقلام الفاتورة' +' '+ @countrow + '</p>' +
 +  N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع كميات الفاتورة' + ' ' + @sumQuan + '</p>'+
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>الضريبة' + ' ' + @TotalTax +'</p>'
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>و رصيدكم الحالي لدينا هو '+' ' + @finalDebitAgnt +'</p>'
 end

 if @paymethod = 1 begin
Set @body = N'<p style=''text-align: center''><img alt="Xtra Logo" src  = ''https://xtra.co.com/Tools/xtraLogoEmail.png'' style=''width:100%; max-width:240px''/>'+
+ '</p>'+
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>عزيزنا العميل يسعدنا خدمتك و  نود إعلامك بانه تم إضافة فاتورة نوع '+@billkind+' </p>' 
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>بتاريخ ' + 
' ' + convert(nvarchar(max),@billdate)+'</p>' +
N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>بالتفاصيل التالية'+'</P>' + 
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع صافي الفاتورة' + ' ' +
 @invoiceValue + ' ' + @curency + '</p>' 
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع أقلام الفاتورة' +' '+ @countrow + '</p>' +
 +  N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع كميات الفاتورة' + ' ' + @sumQuan + '</p>'+
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>الضريبة' + ' ' + @TotalTax +'</p>'
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>و رصيدكم الحالي لدينا هو '+' ' + @balanceAgent +'</p>'
 end

  if @paymethod = 3 begin
Set @body = N'<p style=''text-align: center''><img alt="Xtra Logo" src  = ''https://xtra.co.com/Tools/xtraLogoEmail.png'' style=''width:100%; max-width:240px''/>'+
+ '</p>'+
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>عزيزنا العميل يسعدنا خدمتك و  نود إعلامك بانه تم إضافة فاتورة نوع '+@billkind+' </p>' 
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>بتاريخ ' + 
' ' + convert(nvarchar(max),@billdate)+'</p>' +
N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>بالتفاصيل التالية'+'</P>' + 
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع صافي الفاتورة' + ' ' +
 @invoiceValue + ' ' + @curency + '</p>' 
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع أقلام الفاتورة' +' '+ @countrow + '</p>' +
 +  N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>مجموع كميات الفاتورة' + ' ' + @sumQuan + '</p>'+
 N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>الضريبة' + ' ' + @TotalTax +'</p>'
 + N'<p style = ''font-size:15px; font-weight:bold;text-align: right''>و رصيدكم الحالي لدينا هو '+' ' + @balanceAgent +'</p>'
 end

DECLARE @xml NVARCHAR(MAX)
DECLARE @body2 NVARCHAR(MAX)

SET @xml = CAST(( SELECT qry101.ItemName AS 'td','',format (qry101.Quantity,'N2') AS 'td',''
,format(qry101.ItemTotalValueRate,'N2') as 'td' , ''
FROM Qry101 
where InvoiceGuide = @22guide
order by Quantity
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))



SET @body2 ='<html><body><H2 style = '' color:#0088b2; ''>Your invoice details:</H2>

<table border = 1 > 
<tr>
<th width = 300px 
style=''
    color: white;
    background: #0088b2; ''
 > item </th> <th width = 80px style=''
    color: white;
    background: #0088b2; ''> QTY </th> <th width = 80px style=''
    color: white;
    background: #0088b2; ''> amount </th> '    

SET @body2 = @body2 + @xml +'</table> 
<style>
th{
  color: white;
  
  background: #0088b2}
 

  </style>
</body></html>'

declare @finalBoday nvarchar (max)
set @finalBoday = @body + @body2

 exec Email
  @a
 ,@mail
 ,@fullSupject
 ,@finalBoday

end

				
			

الآن يمكنك استدعاء الإجراء AutoEmailing لإرسال الإيميلات من داخل برنامج إكسترا كما هو موضح في الفيديو.

لمزيد من المعلومات حول برنامج Xtra وغيره من منتجات شركة EasyBooks لا تترددوا بالتواصل معنا أو مع أحد وكلائنا حول العالم:

Mobile – Whatsapp – Telegram
+17074000211

 

اترك تعليقًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Shopping Cart
انتقل إلى أعلى