Click here to Skip to main content
11,576,293 members (52,707 online)
Click here to Skip to main content

Tagged as

Send Email using WCF Service

, 27 Oct 2014 CPOL 19.1K 438 31
Rate this:
Please Sign up or sign in to vote.
How to send email using a WCF Service.

Introduction

In this article I will tell you how to send email using a WCF Service. We can send email directly from the client; however, in some cases you can't send external emails directly. In that case we need a WCF service for sending an email from the client. In this article, I will first explain how to create a WCF service then try to implement email functionality using the WCF Service. In this article I am using GMail to send email. So the user must have a GMail account for sending emails.  

Background

I have already written so many articles on WCF:  

Using the code

1. Create WCF Service Class Library

Create a new Project WCF Class Library Project and Name it EmailServices

Step 1: Create service contract as IEmailService and add OperationContract SendEmail for sending email. This method uses GMail user address, password, and email to, cc, and subject as parameters:

[ServiceContract]
public interface IEmailService  { 
    [OperationContract]
    string SendEmail(string gmailUserAddress, string gmailUserPassword, 
    string[] emailTo,string[] ccTo, string subject, string body, bool isBodyHtml);           
}

Step 2: Add the EmailService class and implement IEmailService.

public class EmailService : IEmailService
{
    private static string SMTPSERVER = "smtp.gmail.com";
    private static int PORTNO = 587;

    public string SendEmail(string gmailUserName, string gmailUserPassword,  
       string[] emailToAddress, string[] ccemailTo, string subject, string body, bool isBodyHtml)
    {            
        if (gmailUserName == null || gmailUserName.Trim().Length == 0)
        {
            return "User Name Empty";
        }
        if (gmailUserPassword == null || gmailUserPassword.Trim().Length == 0)
        {
            return "Email Password Empty";
        }
        if (emailToAddress == null || emailToAddress.Length == 0)
        {
            return "Email To Address Empty";
        }

        List<string> tempFiles = new List<string>();

        SmtpClient smtpClient = new SmtpClient(SMTPSERVER, PORTNO);
        smtpClient.EnableSsl = true;
        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = new NetworkCredential(gmailUserName, gmailUserPassword);
        using (MailMessage message = new MailMessage())
        {
            message.From = new MailAddress(gmailUserName);
            message.Subject = subject == null ? "" : subject;
            message.Body = body == null ? "" : body;
            message.IsBodyHtml = isBodyHtml;

            foreach (string email in emailToAddress)
            {                   
                message.To.Add(email);
            }
            if (ccemailTo != null && ccemailTo.Length > 0)
            {
                foreach (string emailCc in ccemailTo)
                {                       
                    message.CC.Add(emailCc);
                }
            }
            try
            {
                smtpClient.Send(message);                 
                return "Email Send SuccessFully";
            }
            catch
            {                  
                return "Email Send failed";
            }
        }
    }
}

Step 3: Build your Class Library.

2. Add WCF Service Application Project

Step 1: Add reference of Class Library Project to that WCFServiceHost project.

Step 2: Delete IService1.Cs and the code-behind file.

Step 3: Right click on that SaleService.svc and select view Markup:

Step 4: Change the Service Name from that markup:

<%@ ServiceHost Language="C#" Debug="true" 
  Service="EmailServices.EmailService" CodeBehind="EmailService.svc.cs" %>

Step 5: And build the solution and WCFServiceHost set as startup project and EmailService.svc set as startup page and run the service.

3. Testing Email Service

  1. Use WCFSTORM for testing WCF Service . You can download WCFSTORM from http://www.wcfstorm.com/wcf/home.aspx.
  2. Open WCFStrom and add the following endpoint http://localhost:53818/EmailService.svc?wsdl.

By using this, you have successfully send email using WCF Service.

Please see the attached source code.

Happy programming!!

If you have any queries, Reply Me

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Sujit Bhujbal
Software Developer (Senior)
India India
Sujit Bhujbal is Senior Software Engineer having over 6 + years of Experience in Asp.net 3.5,WPF,WCF and has worked on various platforms. He worked during various phases of SDLC such as Requirements and Analysis, Design and Construction, development, maintenance, Testing, UAT.

He is Microsoft Certified Technology Specialist (MCTS) in Asp.net /WCF Applications. He worked at various levels and currently working as a Senior Software Engineer.

His core areas of skill are Web application development using WPF,WCF , C#.Net, ASP.Net 3.5, WCF, SQL Server 2008, CSS, Java script Web design using HTML, AJAX and Crystal Reports

He is proficient in developing applications using SilverLight irrespective of the language, with sound knowledge of Microsoft Expression Blend and exposure to other Microsoft Expression studio tools.


------------------------------------------------------------------------
Blog: Visit Sujit Bhujbal

Personal Website :-Visit sujit Bhujbal Personal Site

Facebook :- Sujit Bhujbal Facebook

CodeProject:- Sujit Bhujbal codeproject

DotNetHeaven:- DotNetHeaven

CsharpCorner:-CsharpCorner

Linkedin :-Linkedin

Stack-Exchange: Stack-Exchange

Twitter :-Twitter

JavaTalks :-JavaTalk

------------------------------------------------------------------------

You may also be interested in...

Comments and Discussions

 
GeneralMy vote of 1 Pin
Faisalabadians28-Oct-14 3:04
memberFaisalabadians28-Oct-14 3:04 
GeneralRe: My vote of 1 Pin
Vijay Gill28-Oct-14 7:47
professionalVijay Gill28-Oct-14 7:47 
NewsUnable to download source code Pin
Abhishek Pant30-Sep-14 22:40
professionalAbhishek Pant30-Sep-14 22:40 
GeneralRe: Unable to download source code Pin
Sujit Bhujbal27-Oct-14 20:19
memberSujit Bhujbal27-Oct-14 20:19 
Questiondownload unavailable Pin
Member 1110376623-Sep-14 4:29
memberMember 1110376623-Sep-14 4:29 
AnswerRe: download unavailable Pin
Sujit Bhujbal27-Oct-14 20:10
memberSujit Bhujbal27-Oct-14 20:10 
QuestionUnable to Download File attached Pin
heemanshubhalla15-Feb-14 2:38
memberheemanshubhalla15-Feb-14 2:38 
AnswerRe: Unable to Download File attached Pin
Sujit Bhujbal27-Oct-14 20:10
memberSujit Bhujbal27-Oct-14 20:10 
QuestionPlease give suitable instructions Pin
heemanshubhalla15-Feb-14 2:33
memberheemanshubhalla15-Feb-14 2:33 
Questionwhere is SaleService.svc Pin
heemanshubhalla15-Feb-14 2:24
memberheemanshubhalla15-Feb-14 2:24 
AnswerRe: where is SaleService.svc Pin
Shashank Vaidya20-Apr-14 15:26
memberShashank Vaidya20-Apr-14 15:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150603.1 | Last Updated 28 Oct 2014
Article Copyright 2013 by Sujit Bhujbal
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid