Tuesday, November 3, 2009

PL/SQL and Gmail (or UTL_SMTP with SSL)

In this post I will describe how to send mail from an Oracle database using UTL_SMTP over SSL using Stunnel. I conducted the test on Windows XP with Oracle database 11gR1, but it should work for nix-operating systems and database versions 9.2 and up. To be quite frank, this is nothing new, but it might be of use anyway.

Preface
I wanted to send emails from my database when some data changes. It was not a corporate solution with access to an internal smtp-host. A simple, accessible, ISP agnostic smtp-server would do. In my case, Gmail fitted the bill, only problem was that Gmail required SSL, which UTL_SMTP does not support. I am up for a challenge (meaning: I am good at complicating (ing, not ed :-)) things), so here goes...

Stunnel
Since UTL_SMTP does not support SSL, I will use a third party tool to "wrap" my connection. There are probably any number of tools which can do this, but Stunnel is quite often referred to, and very easy to install and configure. For nix systems, I suggest checking the Examples-page on stunnel.org, this is a Windows-specific explanation. This part of the post is based on a thread on ez.no.

Installing and configuring Stunnel
  • Go to stunnel.org and download the latest Windows binaries
  • Install Stunnel (take note of the installation path), in my example it is c:\stunnel
  • Edit the file stunnel.conf located in installation folder to (just backup the original, and replace all the original text with the text below):
; Use it for client mode
client = yes

[ssmtp]
accept  = 1925
connect = smtp.gmail.com:465
Here I use port 1925 on my localhost (unused as far as I know) to connect to smtp.gmail.com.

Start Stunnel.exe, and test the configuration:
  • Start cmd
  • Write: telnet localhost 1925
  • You should then see something like "220 mx.google.com ESMTP 5sm18031572eyh.34"
  • Write: quit

Troubleshooting: If you cannot reach smtp.gmail.com, there can be any number of things gone wrong.
  • Try a normal ping to smtp.gmail.com
  • Check to see if stunnel.exe is excepted properly in all firewalls (Windows native and other software firewalls)

Once stunnel is working, and if you are familiar with UTL_SMTP, don't bother reading on. This is the same as UTL_SMTP with any other smtp-host requiring authentication.

Setting up ACL (11g only)
This is more or less monkeyed from Arup Nandas 11g series.

To create an access control list for your application user, and enabling it to connect to localhost on port 1925, do the following:
-- create acl
begin
        dbms_network_acl_admin.create_acl (
                acl             => 'gmail.xml',
                description     => 'Normal Access',
                principal       => 'CONNECT',
                is_grant        => TRUE,
                privilege       => 'connect',
                start_date      => null,
                end_date        => null
        );
end;
/
-- add priviliege to acl
begin
  dbms_network_acl_admin.add_privilege ( 
  acl       => 'gmail.xml',
  principal    => '<YOUR SCHEMA USER>',
  is_grant    => TRUE, 
  privilege    => 'connect', 
  start_date    => null, 
  end_date    => null); 
end;
/
-- assign host, port to acl
begin
  dbms_network_acl_admin.assign_acl (
  acl => 'gmail.xml',
  host => 'localhost',
  lower_port => 1925,
  upper_port => 1925);
end;
/
And you are ready to use UTL_SMTP against smtp.gmail.com.

Wrapping UTL_SMTP
I have created a small test-package based on the old UTL_MAIL example from Oracle. Your schema user must have execute privileges on UTL_SMTP and UTL_ENCODE for this to work:
create or replace package apex_mail_p
is
   g_smtp_host      varchar2 (256)     := 'localhost';
   g_smtp_port      pls_integer        := 1925;
   g_smtp_domain    varchar2 (256)     := 'gmail.com';
   g_mailer_id constant varchar2 (256) := 'Mailer by Oracle UTL_SMTP';
   -- send mail using UTL_SMTP
   procedure mail (
      p_sender in varchar2
    , p_recipient in varchar2
    , p_subject in varchar2
    , p_message in varchar2
   );
end;
/
create or replace package body apex_mail_p
is
   -- Write a MIME header
   procedure write_mime_header (
      p_conn in out nocopy utl_smtp.connection
    , p_name in varchar2
    , p_value in varchar2
   )
   is
   begin
      utl_smtp.write_data ( p_conn
                          , p_name || ': ' || p_value || utl_tcp.crlf
      );
   end;
   procedure mail (
      p_sender in varchar2
    , p_recipient in varchar2
    , p_subject in varchar2
    , p_message in varchar2
   )
   is
      l_conn           utl_smtp.connection;
      nls_charset    varchar2(255);
   begin
      -- get characterset
      select value
      into   nls_charset
      from   nls_database_parameters
      where  parameter = 'NLS_CHARACTERSET';
      -- establish connection and autheticate
      l_conn   := utl_smtp.open_connection (g_smtp_host, g_smtp_port);
      utl_smtp.ehlo(l_conn, g_smtp_domain);  
      utl_smtp.command(l_conn, 'auth login');
      utl_smtp.command(l_conn,utl_encode.text_encode('<your gmail account including @gmail.com>', nls_charset, 1));
      utl_smtp.command(l_conn, utl_encode.text_encode('<your gmail account password>', nls_charset, 1));
      -- set from/recipient
      utl_smtp.command(l_conn, 'MAIL FROM: <'||p_sender||'>');
      utl_smtp.command(l_conn, 'RCPT TO: <'||p_recipient||'>');
      -- write mime headers
      utl_smtp.open_data (l_conn);
      write_mime_header (l_conn, 'From', p_sender);
      write_mime_header (l_conn, 'To', p_recipient);
      write_mime_header (l_conn, 'Subject', p_subject);
      write_mime_header (l_conn, 'Content-Type', 'text/plain');
      write_mime_header (l_conn, 'X-Mailer', g_mailer_id);
      utl_smtp.write_data (l_conn, utl_tcp.crlf);
      -- write message body
      utl_smtp.write_data (l_conn, p_message);
      utl_smtp.close_data (l_conn);
      -- end connection
      utl_smtp.quit (l_conn);
   exception
      when others
      then
         begin
           utl_smtp.quit(l_conn);
         exception
           when others then
             null;
         end;
         raise_application_error(-20000,'Failed to send mail due to the following error: ' || sqlerrm);   
   end;
end;
/
This is NOT production-ready code: First of all, you do not want your credentials in the open, at least obfuscate the package body.

Some notes on the package:
  • Parameters sender and recipient must contain e-mail addresses only, use the get_address function in the original Oracle example for more sophisticated use (you can also look at how to add attachments if you have the need).
  • I had some trouble encoding my account name and password. My initial thought was to use utl_raw.cast_to_raw and utl_encode.base64_encode, but this did not work, so I ended up using utl_encode.encode_text
  • Mime-type is set to "text/plain", set it to "text-html; charset=<something appropriate>" to enhance visual layout

Sending an E-mail
To test it all, try:
begin
   apex_mail_p.mail('<your gmail address>', '<recipient address>', '<Subject>', '<message body>');
end;
/
And you are done!

Well, if you don't get any error messages, that is. If you encounter any exceptions, first of all check your Gmail credentials. Next, check where (in the PL/SQL-code) it fails, and use your favorite search engine to do a combined search on smtp command sent and smtp-error received. Chances are others have worked through the same problems (even if they are not Oracle-related). Last resort is to use telnet and manually type the commands, a bit cumbersome but gives full control.

Happy coding :-)

102 comments:

  1. Thank you for the post. I'm quite new to this area and the post talked about how to config and send emails.
    So I would really appreciate if you could please also explain a little bit about how to config and retrieve emails by using Stunnel. Thanks.

    Br,
    Shichao

    ReplyDelete
  2. @Shichao

    Polling for mail is a whole other ball game, and I have no experience with Oracle database as a recipient.

    That being said, it should be possible using Blat. Check out http://weblogs.asp.net/nleghari/articles/gmailbackup.aspx or blat.net for details.

    ReplyDelete
  3. Hi,

    I did upto your post "Here I use port 1925 on my localhost (unused as far as I know) to connect to smtp.gmail.com."

    Also I started Stunnel.exe but I don't know where to perform your test configuration.

    Where to write "telnet local 1925", I tried under my cmd (command prompt) but it's giving me error as "telnet is not recognized ........."

    So can you elborate little bit more where to perform test configuaration so that I can recive the message as "220 mx.google.com ESMTP 5sm18031572eyh.34"

    Thank, I appreciate your reply

    ReplyDelete
  4. @Deep

    Looks like you are missing the telnet client. You did not specify, but I'm guessing you run MS Windows Vista.

    As far as I know, telnet is installed default with every version of Windows XP (which I used in this example). Not so with Vista. Check out http://windowsitpro.com/article/articleid/93952/where-is-the-telnet-client-in-windows-vista.html on how to enable telnet i Vista.

    With telnet enabled you should be able to write "telnet localhost 1925" in command prompt to establish a connection with gmail. locahost must be declared in your hosts-file, and stunnel must be running with modified config-file for this to work.

    Good luck :-)

    ReplyDelete
  5. Thank You. Hats off to you!!!!!

    That worked for me successfully.

    ReplyDelete
  6. Thank you so much... really... your post has really helped me a lot :).. I had to find the way to send mails fom Apex and thanks to you now I've found it :). Altougt I'm not sure if this will work, cuz maybe I will have to use an internal smtp-host but I've couldn't sent any mail form it, maybe I don't know how to configure the smtp :P... anyway, this might work, I just have a question... how to attach a file?...

    PD: Sorry for my bad ortography, English is not my natural language :P.

    ReplyDelete
  7. @snipercat

    Unless you have to use SSL for your internal mail server, I would very strongly advise you to check out the native mail support in APEX.

    See this tutorial to get more information. It is really easy to use, and no stunnel involved.

    If you have to use SSL and attach a file, you can either use UTL_MAIL (10g and above), or UTL_SMTP with mail demo wrapper package. Either way you have to use stunnel as described above to wrap your smtp-connection.

    Good luck :-)

    ReplyDelete
  8. You don't know how much you has helped me... Finally I've sent a mail using the SMTP from my University, I just had to modify a little your code... Thank you... Thank you so much... really, If I could to invite you to drink a beer or something you like, I would do it :P...

    Now that I've sent a mail, I will try to send a file with the help of the links you gave me :).. Although I've already used one, that helped me to send mails from Gmail using an Apex Interface :)...

    Again.. Thank you so much...

    ReplyDelete
  9. Has this support in windows 2003 server?

    ReplyDelete
  10. @jayavel:

    Define "support"!

    Will it be supported by Oracle: No
    Will it be supported by Microsoft: No
    Are there any commercial vendors supporting Stunnel: No

    Will it work: Most likely

    ReplyDelete
  11. Thank you so much... really... your post has really helped me a lot :).

    How to send multiple receipts?

    Good luck :-)

    ReplyDelete
  12. heloo mr, i try.. open ssl with stunel, but error
    ORA-20000: Failed to send mail due to the following error: ORA-29278: SMTP transient error: 421 Service not available
    ORA-29278: SMTP transient error: 421 Service not available
    ORA-06512: at "SYS.APEX_MAIL_P", line 68
    ORA-06512: at line 2
    how solution?? thanks

    ReplyDelete
  13. @Kue

    This you would typically get when you are unable to connect to gmail.com. This can be due to a number of reasons.

    If you can successfully execute the telnet command in the stunnel section of this post, then you are probably good to go.

    Good luck!

    ReplyDelete
    Replies
    1. I am stuck at the beginning. After successfully installing stunnel I am trying to replace the content of the stunnel.conf file with your lines and it won't let me. I am the only user on my laptop with vista. Any suggestions?

      Delete
  14. Mr havard , i have a problem with stunnel
    Configuration successful
    2010.10.10 16:31:13 LOG5[3108:1564]: Service ssmtp accepted connection from 127.0.0.1:1783
    2010.10.10 16:31:23 LOG3[3108:1564]: connect_blocking: s_poll_wait 209.85.227.109:465: timeout
    2010.10.10 16:31:23 LOG5[3108:1564]: Connection reset: 0 bytes sent to SSL, 0 bytes sent to socket

    ReplyDelete
  15. Had a nice time trying this out on Oracle 9.2.0.6 on RHEL4. Thanks for the post.

    My two cents:
    1. RHEL3 comes with stunnel installed. I just needed to create the stunnel.conf file in /etc/stunnel. Contents of the file is same as what you mentioned. Then start stunnel by executing the command 'stunnel &'
    2. utl_encode.text_encode is not available in 9.2.0.6. Used UTL_ENCODE.BASE64_ENCODE instead. ie, instead of utl_encode.text_encode('', nls_charset, 1) use UTL_SMTP.command(l_mail_conn, UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW(''))));

    ReplyDelete
  16. Is this a working example?
    I am using Oracle XE.

    ReplyDelete
  17. i want to send email with attachment(image jpg/gif ) please guide me

    ReplyDelete
  18. hello i m really happy with this post,bt the issue i m having is that i dnt knw if it ll work with oracle 10g r2.i m new to this area n i want to implement it in our next project.
    thankz

    ReplyDelete
  19. Oracle 11gr2 (11.2.0.2) utl_smtp supports SSL built-in. It works great, we upgraded just to get this feature.

    ReplyDelete
  20. Thank you for sharing this.
    Rg
    Damir Vadas
    www.vadas.hr

    ReplyDelete
  21. This comment has been removed by the author.

    ReplyDelete
  22. Good.
    Someone could attach document with this routine,
    can you please explain how to do.
    Thank you.

    ReplyDelete
  23. Thanks a lot.........i tried first time and its work.
    really happy

    ReplyDelete
  24. can anybody plz tell me that i want to enter space while sending text message.using the abobe package
    what changes i have to do.....

    ReplyDelete
  25. great work man carry on with new task

    thanks alot

    ReplyDelete
  26. Thanks for your great post!
    From your post, you are using gmail account to send email.
    Can you guide on how to send mail using hotmail, yahoo or exchange server?

    Thank you in advance!

    ReplyDelete
  27. Excelente post, muy útil, gracias. Recuerden sustituir la cuenta de salida en el package

    ReplyDelete
  28. This is great, its working
    Thanks

    ReplyDelete
  29. No me funciona el ping a smtp.gmail.com
    Aquì esta el error:

    C:\Users\xxxxxxxxxx>ping smtp.gmail.com

    Haciendo ping a gmail-smtp-msa.l.google.com [74.125.134.109] con 32 bytes de dat
    os:
    Tiempo de espera agotado para esta solicitud.
    Tiempo de espera agotado para esta solicitud.
    Tiempo de espera agotado para esta solicitud.
    Tiempo de espera agotado para esta solicitud.

    Estadísticas de ping para 74.125.134.109:
    Paquetes: enviados = 4, recibidos = 0, perdidos = 4
    (100% perdidos),

    Cuando realizo el telnet localhost 1925, el stunnel informa lo siguiente:
    2012.10.12 16:01:12 LOG5[3728:4228]: Service [ssmtp] accepted connection from 127.0.0.1:49930
    2012.10.12 16:01:13 LOG3[3728:4228]: connect_blocking: connect 74.125.134.109:465: Connection refused (WSAECONNREFUSED) (10061)
    2012.10.12 16:01:14 LOG3[3728:4228]: connect_blocking: connect 74.125.134.108:465: Connection refused (WSAECONNREFUSED) (10061)
    2012.10.12 16:01:14 LOG3[3728:4228]: connect_blocking: connect 2607:f8b0:4002:c02::6d:465: Network is unreachable (WSAENETUNREACH) (10051)
    2012.10.12 16:01:14 LOG5[3728:4228]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket

    Tengo el firewall deshabilitado, y cuando hago telnet smtp.gmail.com 587 me muestra lo siguiente:
    220 mx.google.com ESMTP i20sm7078623ank.17

    Alguien puede ayudarme????
    Saludos

    ReplyDelete
  30. Hi,

    I have an Windows XP desktop with Oracle XE 11g R2 installed, with APEX 4.0 version

    I´ve tried to test the command: telnet localhost 1925
    No answer appeared. After press to times button, i´ve depared with this error:
    SSL_accept: 1408F10B: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
    I can ping without problem smtp.gmail.com server. I´ve desactivated windows firewall.
    What´s wrong?
    Best regards,
    Sergio Coutinho
    Brazil

    ReplyDelete
  31. Excelente artículo, lo probé y funcionó correctamente...
    los datos para el archivo stunnel.conf son:
    [ssmtp]
    client = yes
    accept = 1925
    connect = smtp.gmail.com:465

    Thanks OraMonkey

    ReplyDelete
  32. Thanks a lot. This helped me out a lot.

    ReplyDelete
  33. Hi
    thanks ur post helped me to achieve this..but can u pls tell hw can we send a attachment also along with this mail?

    ReplyDelete
  34. Hi Thanks for explain this. I am getting error at the time of establishing the connection
    "l_conn := utl_smtp.open_connection (g_smtp_host, g_smtp_port);"
    and its showing me the exception transient error "29278 ORA-29278: SMTP transient error: 421 Service not available". Please help me.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. It is because of some time slow internet connection.
      Just try again plz.

      Delete
  35. Thanks It is working fine..... Can we also send the attachment with it? If can then how?
    Please guide me. Thanks a lot

    ReplyDelete
  36. This comment has been removed by the author.

    ReplyDelete
  37. Thanks. Best source of knowledge about sending emails from oracle via gmail.

    ReplyDelete
  38. HI

    thanks. excelent post, i have a question, did you try it on any linux?

    ReplyDelete
  39. how to send email from scott user

    ReplyDelete
  40. I like this post and i feel very happy to read this article...
    More info:- Windows Live Mail Technical Support

    ReplyDelete
  41. Very Good Solution...its working fine.....excellent....10 out of 10......5 star............Thank you very much sir...........

    ReplyDelete
  42. When send one,two email - all fine.
    When send three or more message in oracle loop, then in stunnel log:
    remote socket: Address family not supported by protocol (97)
    Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket

    I'm add in procedure mail: utl_tcp.close_all_connections;
    What am I doing wrong?

    ReplyDelete
  43. Hi nice post... it worked fine.. the next task for me is to send mail with attachments please help me to do that..

    ReplyDelete
  44. Hi ,

    Thanks a lot for sharing good solution. Can you also share code for reading mail box.

    Thanks and Regars,
    S Ranga Prasad

    ReplyDelete
  45. Thank you. This is working fine to me.
    Now, I want to inform You that I will use this in my apex application to send reports to my clients but the question is that how could I be able to receive mail from the clients on the same apex interface to know their requirements and what they actually want to see in the reports.
    Kindly help me out.
    Thank You.
    Regards,
    Saim Ahmed.

    ReplyDelete
  46. Thank you very much! Very usefull!

    ReplyDelete
  47. I am getting the following error at the execution:
    ---
    ERROR at line 1:
    ORA-20000: Failed to send mail due to the following error: ORA-29279: SMTP
    permanent error: 535 5.7.8 https://support.google.com/mail/?p=BadCredentials
    e31sm2776593wre.54 - gsmtp
    ---
    I am 100% sure of my gmail username and password.

    ReplyDelete
  48. how can i do it in linux server with oracle db 11gr2

    ReplyDelete
  49. Thanks a lot, after many hours dealing with this, hopely works. Thanks again.

    ReplyDelete
  50. Hello sir !
    After executing the package I got this error
    47/7 PLS-00103: Encountered the symbol "MESSAGE" when expecting one of
    the following:
    := . ( @ % ;
    this is line 47 : write message body

    I'm new to all of this and I don't know what to do !
    thanks for your help.

    ReplyDelete
  51. Activating Bullguard internet security:
    In order to get your Bullguard internet security activated then for that open your Bullguard antivirus program then click on “settings” button in the upper toolbar then in the settings window in the upper toolbar click on “general” then enter the license key in the field and press the activate button.

    For more information to visit this website: http://www.bullguard-support.co.uk/

    ReplyDelete
  52. This comment has been removed by the author.

    ReplyDelete
  53. Thanks for sharing the post.. parents are worlds best person in each lives of individual..they need or must succeed to sustain needs of the family. Buy Old Gmail Accounts

    ReplyDelete

  54. In case you're utilizing the Gmail email administration for business correspondence, it winds up important to fix the issues as fast as could reasonably be expected. If your problem is still occur and solved then you can Call +1-877-637-1326 Gmail Password Recovery Toll Free Number for instant solution for Gmail Related Errors and Problems.

    ReplyDelete
  55. when you remove your account from your android and reinstall again it would start working on your system. The benefit google account is that it stores every data of in its google server. Everything can be restored it be your song, videos or photos in your mobile. you can easily recover all these even after reset of your android mobile. Normally it has a nuclear option through which we can recover all the data that have been deleted from your mobile.

    Gmail not working

    ReplyDelete
  56. If you need to speak to a live person on Gmail then in that case open the Google website further click on “help forum” then click the support tab and also select the product. Then from the list of options that appear select “Gmail” select a medium from the list of options note down the number and you can then call the representative.
    Gmail Support Number UK

    ReplyDelete
  57. Hello, this weekend is good for me, since this time i am reading this enormous informative article here at my home. Buy Old Gmail Accounts

    ReplyDelete
  58. When Gmail fails to attach files then grant the permission of Gmail. Call on Gmail UK for instant help regarding this. Also, open Gmail in another browser and make sure that you are using the latest version of the browser. Now, disable the proxy server and switch off Firewalls.
    Other Source:
    Gmail Support UK

    ReplyDelete
  59. Well, interesting post and amazing stuff here. I enjoyed reading your blog. Thanks for sharing. It really helps me to counteracts the technical issues that I have been facing with my Gmail Error code 6922 issues for a while. Do you Recover Gmail Error code 6922 recently and unable to recover your account? Call us at Gmail live chat and get every possible detail in that regard. Your issues will be handled by certified professionals.

    ReplyDelete
  60. I really thank you for the valuable info on this great subject and look forward to more great posts. Thanks a lot for enjoying this beauty article with me. I am appreciating it very much! Looking forward to another great article. Good luck to the author! All the best! Buy PVA Gmail Accounts

    ReplyDelete
  61. Are you having trouble in selling and transferring funds to another wallet in the Blockchain account? If you can’t deal with funding issue and need a helping hand to fix them instantly without any error, you can always take help from the team of elite professionals who are there to assist you. You can call on Blockchain Support number which is functional all the time for guidance. You can talk to the team for verified and accessible solutions from the professionals in no time. Speak to the professionals for functional results in no time. Blockchain Support Number

    ReplyDelete
  62. Is Binance two-factor authentication creating issue and not working properly? Binance 2fa is must to keep a shield on your account from unusual events. If you have no methods in your kitty to deal with your queries, you can always take help from the team of elite professionals who are there to guide you. You can call on Binance Support number which is always functional and users can have conversation with the team who is there to guide you. Call to them for availing solutions and get rid of technical errors in nick of time. Binance Support Number

    ReplyDelete
  63. Is Blockchain two-factor authentication creating issue and not working properly? Blockchain 2fa is must to keep a shield on your account from unusual events. If you have no methods in your kitty to deal with your queries, you can always take help from the team of elite professionals who are there to guide you. You can call on Blockchain Support number which is always functional and users can have conversation with the team who is there to guide you. Call to them for availing solutions and get rid of technical errors in nick of time. Blockchain Support Number

    ReplyDelete
  64. If you need to fix Gmail error code 007 then in that case it is advisable that the user gets the cache and cookies cleared from the browser further check for browser updates and also for viruses further get the browser extension disabled. If you still need more information or help then ask for it from the team of trained and certified experts.
    Gmail Help UK

    ReplyDelete
  65. It is really helpful article please read it too my blog IMAP Gmail is not Responding.

    ReplyDelete
  66. A fantastic blog with a lot of useful information. I would like to get updates from you. Keep blogging. All the best.
    It really helps me to counteracts the technical issues that I have been facing with my Gmail Error code issues for a while. Do you Recover Gmail Error Code 102 recently and unable to recover your account? Call us at Gmail online support and get every possible detail in that regard. Your issues will be handled by certified professionals.

    ReplyDelete
  67. It is really helpful article please read it too my blog IMAP Gmail is Responding.

    ReplyDelete
  68. This is realy a Nice blog post read on of my blogs It is really helpful article please read it too my blog IMAP Gmail is not responding. you can visits our websites or toll free no +1-866-558-4555. solve your problem fastly.

    ReplyDelete
  69. This comment has been removed by the author.

    ReplyDelete
  70. My name is Sara Johnson, I live in california U.S.A and i am a happy woman today? I told my self that any Loan lender that could change my Life and that of my family after been scammed severally by these online loan lenders, i will refer any person that is looking for loan to Them. he gave happiness to me and my family, although at first i found it hard to trust him because of my experiences with past loan lenders, i was in need of a loan of $300,000.00 to start my life all over as a single parents with 2 kids, I met this honest and GOD fearing loan lender online Dr. Dave Logan that helped me with a loan of $300,000.00 U.S. Dollars, he is indeed a GOD fearing man, working with a reputable loan company. If you are in need of loan and you are 100% sure to pay back the loan please contact him on (daveloganloanfirm@gmail.com and Call/Text: +1(501)800-0690 ) .. and inform them Sara Johnson directed you.. Thanks. Blessed Be.

    ReplyDelete
  71. Are you having trouble in handle issues related to Binance wallet application? Binance wallet application is designed for all the device – ios and android. If you are experiencing error in opening the Binance wallet on ios and android and need assistance, you can always take help from the team of elite professionals who are there to guide you. Reaching the professionals over Binance toll-free number is a good idea as you can easily get the best guidance straight from the experts. Binance toll-free number

    ReplyDelete
  72. What are the benefits of Email signature on Gmail?
    The email signatures on Gmail have their own benefits those are with the help of signature it becomes easy to promote any event or product also with the email signature message conveying becomes easy one can also easily show the graphic design skills if still needed then to know more the user should ask the Gmail technicians for help and support all the time. Lines are open always at +44-800-368-9067.
    Gmail Help UK

    ReplyDelete
  73. How to change Hotmail account password?
    Hotmail is now famous across the world and you will need to change its password from time to time to keep it secure. To change your password, login to your Hotmail or Outlook.com email account and then, click on your profile and choose View Account. Now, click on Change Password and enter your current password and then, click on Sign In. Call on +44-800-368-9064 if you want to know about the strong password.
    Hotmail Support Number UK

    ReplyDelete
  74. One can easily fix the given issue on Gmail for that the user should, first of all, check the extensions the user should wait for a while so that the error subsides itself also the user should check the mailbox and should get it cleared if it is full, also the cache and cookies should be cleared from the browser. If needed then for more information the user should ask the help of the experts they are available at +44-800-368-9067.
    Gmail Helpline Number UK

    ReplyDelete
  75. Thank you for the information,Good Blog.If you need Sync AOL Mail with Gmail please contact 1(800)358-2146.
    AOL Technical Support

    ReplyDelete
  76. since 2 days my emails on gmail are not sending and the reason is queued issue, and you must read meaning of queued in gmail outbox and if you too face queued error then solve the queued error in gmail this way.

    ReplyDelete
  77. There can be multiple reasons behind Hotmail giving the error message “something went wrong” such as the problem can be related to syncing of account with the Hotmail server, it can also be the browser issue or it can be the issue related to the network if needed then to know more the user should get in touch with the certified Hotmail technicians they can be asked for help as and when needed at +44-800-368-9064.
    Hotmail Helpline Number UK

    ReplyDelete
  78. Thanks a lot.
    It's working fine for Oracle 19c on Windows.
    Kindly help us with multiple recipients like CC, BCC with attachment file
    as pdf, excel, word file etc.

    ReplyDelete
  79. TurboTax is one of the tax preparation software for filing annual income tax returns. However, some of the users would fail to fix TurboTax login issues and problems, and unable to resolve this on their own. However, if you are the one facing the issue of TurboTax login not working, no need to get panic, get your issue fixed instantly via technical experts.

    ReplyDelete
  80. When your Epson printer shows you a warning message- Printer Maintenance Required, you have to reset the printer and there are three different methods to reset the printer to factory settings- Using the control Panel of the Printer, Reset Button and Epson Adjustment Program. However, some users do face the issue- How to reset your Epson Printer? If you are the one getting same, get connected to technical representatives and get your issue resolved on time.

    ReplyDelete
  81. Hi everyone, I've seen comments from people who have already received a loan from Anderson Loan Finance. I really thought it was a scam and I applied for a loan based on their recommendations because I really needed a loan. A few days ago, I confirmed on my personal bank account the amount of 12,000 euros that I had requested for a personal loan with a rental percentage of 2%. This is really good news that I am happy with and I advise anyone who needs a real loan and who is certain that they will repay the loan to contact them via email.

    They can lend you a loan!
    Please contact Mr. Anderson Ray
    Email: andersonraymondloanfinance@gmail.com
    Phone: +1 315-329-6320
    The office address @ (68 Fremont Ave Penrose CO, 81240) ..

    Respectful,

    ReplyDelete
  82. Be ready for the summer with these high performance Summer dog boots from Neo Paws to give their paws protection from Heat and comfort. At Neopaws, we offer incredible range of dog products and accesories to keep them comfortable from all the external hazards.

    ReplyDelete
  83. Our 50' x 10' mobile office trailer provides 460 sq. ft. of mobile office space and is made with durable, high-quality materials that meet national and state construction codes. This model can be configured with a wide-open floorplan or with two private offices and a common area. An optional restroom, kitchen or break room can also be included for additional comfort.

    ReplyDelete
  84. Do you need an urgent loan of any kind? Loans to liquidate debts or need to loan to improve your business have you been rejected by any other banks and financial institutions? Do you need a loan or a mortgage? This is the place to look, we are here to solve all your financial problems. We borrow money for the public. Need financial help with a bad credit in need of money. To pay for a commercial investment at a reasonable rate of 3%, let me use this method to inform you that we are providing reliable and helpful assistance and we will be ready to lend you. Contact us today by email: daveloganloanfirm@gmail.com Call/Text: +1(501)800-0690 And whatsapp: +1 (315) 640-3560

    NEED A LOAN?
    Ask Me.

    ReplyDelete
  85. If you suspect fraudulent transactions or if you believe you've been scammed, you might try to dispute the charges by asking Cash Support for help.
    can't scan back of id cash app

    ReplyDelete
  86. Do you need an urgent loan of any kind? Loans to liquidate debts or need to loan to improve your business have you been rejected by any other banks and financial institutions? Do you need a loan or a mortgage? This is the place to look, we are here to solve all your financial problems. We borrow money for the public. Need financial help with a bad credit in need of money. To pay for a commercial investment at a reasonable rate of 3%, let me use this method to inform you that we are providing reliable and helpful assistance and we will be ready to lend you. Contact us today by email: daveloganloanfirm@gmail.com Call/Text: +1(501)800-0690 And whatsapp: +1 (501) 214‑1395

    NEED A LOAN?
    Ask Me.

    ReplyDelete
  87. Thanks for your previous informative and important post and specially this post.
    Buy Verified Stripe Accounts

    ReplyDelete
  88. If you're looking for some inspiration for writing your blog, buy yahoo pva accounts check out some of these websites. You'll find tons of articles about happiness, joy, and well-being, but there's something especially appealing about reading posts about happiness. And while you're there, you might find some interesting ideas to write about yourself as well! Here are some great resources for writing happy blog posts. If you'd like to share your own experiences of happiness, buy instagram pva accounts leave a comment below!

    ReplyDelete
  89. This blog post was incredibly refreshing! The insights shared were both enlightening and actionable, making it easy to apply them to everyday situations. The writing style was clear and engaging, keeping me hooked throughout. Curious about How long does it take to get a Cameroon visa? Typically, it can take anywhere from a few days to a couple of weeks to process your application, depending on where you apply and your nationality. Be sure to start the process early to ensure you have enough time before your planned departure to Cameroon!

    ReplyDelete
  90. Another strength of your blog post is the thorough research evident in the depth of information provided. Citing reputable sources and including relevant statistics adds credibility to your arguments. This attention to detail shows your commitment to delivering well-researched and accurate content. Allow me to share some information. Travelers with an Indian passport can obtain a Bahrain transit eVisa with ease. The Bahrain transit visa for Indian passport is perfect for those looking to explore Bahrain during their stopover. The application process is entirely online and requires basic documents like a valid passport and a confirmed onward ticket. This eVisa simplifies the travel experience. Discover Bahrain’s vibrant culture and attractions during your transit with the Bahrain transit eVisa, enhancing your travel itinerary with an exciting stop.

    ReplyDelete
  91. I thoroughly enjoyed this blog post! The way you simplified a complex topic was impressive. The real-life examples made the content more relatable and engaging. Your writing style is both informative and captivating, keeping me interested from start to finish. I gained a lot of knowledge without feeling overwhelmed. Looking forward to more posts from you. DRC E-Visa for Chinese travellers Chinese travelers can apply for a Democratic Republic of the Congo (DRC) eVisa. Required documents typically include a valid passport with at least six months validity, a completed eVisa application form, passport-sized photos, proof of accommodation, a travel itinerary, and payment for the eVisa fee. For precise requirements and to apply, visit the official DRC eVisa.

    ReplyDelete
  92. Exploring creativity is akin to embarking on a journey through an endless maze of ideas. Each twist and turn brings forth a distinct perspective, a splash of color that enhances our understanding of the world. How to fill a visa application form for Russia? Filling an eVisa application form involves several key steps. First select your country and type of eVisa. Fill in your personal details, including passport information and travel dates. Ensure all information matches your passport exactly. Following the specified guidelines. Double-check all entries for accuracy. Pay the application fee using the available payment methods. Once submitted, you’ll receive a confirmation email. Processing typically takes 4-5 days. Download and print the eVisa upon approval, and carry it with you when traveling to Russia.

    ReplyDelete