Back
Access

Introducing Send Email in Access 2013 web apps

Share on Facebook Share on Twitter Share on Linkedin Share via OneNote Share via Email Print

One of the top feature requests we’ve heard from customers using Access 2013 web apps hosted inside Office 365 is the need to be able to send emails from their apps. We listened and today we’re proud to announce that a new feature called “Send Email” is available to all of our customers using Office 365 with Access Services. Now you can send emails from your Access 2013 web apps to other members of your organization! Look for this feature in your web apps soon and try it out.

In order to see and use this new feature, you need to update Access: you must be using Access 2013 that has a minimum build number of 15.0.4649.1000. Once your Office 365 site has the new Send Email feature work turned on, and you’re using the minimum Access 2013 build, you’ll see the new SendEmail macro action in the Action Catalog when you’re designing data macros.

How does the Send Email feature work?

You can use the new SendEmail action when you’re working with data macros—both named data macros and data macros attached to table events (On Insert, On Update, and On Delete). When you’re working with named data macros, which you can run from control events on views displayed in your web browser, you can, for example, send an email about a specific record you’re viewing. In this scenario, you could create a command button or a custom Action Bar button on a view that uses the RunDataMacro action in the On Click event to run your saved named data macro that includes the new SendEmail action.

When you’re working with data macros attached to table events, you can send emails when new records are added, existing records are edited, or records are deleted. In this scenario, it makes it easy to alert relevant users within your organization when new records are created, modified, or deleted. To get started, you just double-click SendEmail in the Action Catalog to add it to the macro logic defined for that table event and fill in the required parameters.

Let’s take a closer look at how this works in an example of sending an email from a table event, in this case an On Insert event of an Orders table in an Access 2013 web app. As you can see in the following screenshot, the new SendEmail macro action is available within the Action Catalog.

Send Email in Access 2013 web apps 1

Let’s discuss what the other data macro actions defined in this On Insert table event are doing before we discuss the new SendEmail action.

First, the existing defined macro actions look up the email address and first name of the employee for the new order entered into the app and assigns that information to local variables that are used later in the data macro.

Next, the data macro looks up the company name for the order and assigns that to a local variable as well.

The next three SetLocalVar actions build up various parts of the body of the email message, using HTML tags to add further customization to the message body. For example, if you want to include a line break in the message, you can use a <br> tag in the message.

The last action in the macro logic for this example is the new SendEmail macro action. To add the new action to the macro design window, just double-click SendEmail in the Action Catalog. The SendEmail macro action takes five arguments: To, Cc, Bcc, Subject, and Body.

Argument Required Description
To Yes The recipients of the message whose names you want to put on the To line in the message. Separate the recipient names that you specify in this argument (and in the Cc and Bcc arguments) with a semicolon (;).
Cc No The message recipients whose names you want to put on the Cc (carbon copy) line in the message.
Bcc No The message recipients whose names you want to put on the Bcc (blind carbon copy) line in the message.
Subject Yes The subject of the message. This text appears on the Subject line in the message.
Body Yes The text that you want to include in the main body of the mail message.

For the To, Cc, and Bcc arguments, you can currently send emails only to people within your Office 365 organization. The email addresses used must be within the same company site or belong to guests of the site. For example, if your Office 365 company name is Contoso, the email addresses used with the SendEmail action must correspond to users of the Contoso site. Typically, they would be formatted as user@contoso.com.

Each of the arguments in the SendEmail action accepts the use of expressions. If you want to use an expression for one of the arguments, first type an equal sign (=), followed by the expression you want to use. When you type the equal sign, Access displays the Expression Builder button on the right side of the argument text box. You can click this button and use the Expression Builder dialog to help you build the expression, or combination of expressions, you want to use.

Using expressions, you can create custom emails that display relevant data from the app. In the following screenshot, you can see an example of the Expression Builder dialog displaying the expression we used for the Body argument of the SendEmail action for this table event. In this example, the Concat function is used in the Body argument of the SendEmail action to concatenate the three local variables previously defined in the SetLocalVar actions. The three local variables are combining HTML tags, custom message text, and record data within the app and the Body argument expression is combining all three of them together for the full email message. You can be very creative with the email messages you send from your apps using these expression techniques and your own imagination.

Send Email in Access 2013 web apps 2

Here’s an example of what a completed email message looks like when you enter a new order into the app with the defined macro logic shown earlier.

Send Email in Access 2013 web apps 3

That’s how using the new SendEmail data macro action on table events works. For sending emails from named data macros, you define the data macro logic the same way: just by double-clicking SendEmail from the Action Catalog and providing the needed parameters. And you also have opportunities to customize your messages in these scenarios as well.

Being able to send emails from your apps opens up more possibilities for using your custom Access 2013 web apps built on top of Office 365. We hope you enjoy this new Send Email feature within Access 2013 web apps hosted inside Office 365. Give it a try and let us know what you think!

—Jeff Conrad is a Senior Content Developer on the Office Creative Content Development team.

Top

Join the conversation

30 comments
  1. Looks good, but the post says, “For the To, Cc, and Bcc arguments, you can currently send emails only to people within your Office 365 organization.” My need is to be able to send e-mails to people outside my Office 365 organisation. How long will it be before we are able to do that, please? Until then I will need to continue using Zapier and a GMail account.

    • Hey Alan – Thanks for the feedback. Currently there’s no timeline to support sending email outside the organization, but we’ll keep the idea in mind for future iterations. Thanks!

    • Hey Alan- Currently there’s no timeline for supporting sending emails outside your organization, but we’ll certainly keep the idea in mind for future iterations. Thanks for the feedback!

  2. Now this might be very interesting indeed. Access web apps (AWAs) can read data from linked SharePoint lists, but cannot push data back into them. It is possible to e-mail data to SharePoint lists so this may provide a basic way of getting data into SP/Office 365. I would love to know if there is a way that the new functionality could send a meeting request to a SharePoint calendar. For example, I have some Resources set up as rooms under the Exchange Admin Center thingy in Office 365 which have associated e-mail addresses. As long as I send a meeting request from an e-mail account which has suitable permissions and the room is set to accept requests automatically, I can create meetings in that room’s calendar by inviting that room to my meeting via e-mail. So the question is whether such an e-mail can be generated from this new AWA e-mail functionality. I can’t see a way, but it would be brilliant if it were possible.

    • Hey Alan – Interesting idea. Can you help me understand the end-to-end solution you’re trying to enable better? Sounds like you want to book rooms as a result of actions take in the Access app. What’s the business case here? Thanks much!

      • Hiya Joe,
        It was part of a scenario where our group of churches has 7 churches where services need to be created and then for rotas (service-leaders, preachers, churchwardens, coffee etc.) need to be created. After some discussion amongst the stakeholders here, we have decided to go with manually creating those services in SharePoint calendars in Office 365, link to those calendars from an Access web app and then create the rotas entirely in the Access web app. In other words, we have stepped back from what I was suggesting, which was where we had shared mailboxes for the individual churches and were thinking of sending e-mails to them to book a time in each. To do that I think we would have had to generate Outlook-style meeting requests and I could find no easy way (any way?) of doing that in an Access web app.

  3. Jeff, Nicely explained. I particularly like that you’ve included the less than obvious HTML example. Saves me having to work out whether it supported HTML myself.

    You may have already thought of this but it might be nice if a user could right click on SendMail in the action catalog and click ‘Help’ to be taken to this page?

    I hope we see more posts like this on a regular basis, for both new and existing functionality.

    • Thanks for you’re input, Kent.

  4. I agree, Alan. I think Microsoft missed the mark here. They’re continuing to build features that are nice for the enterprise user and not for businesses that need to email clients and vendors from within the web app. I’ve had to build a hybrid smtp work-around for now & hopefully someday we will get more features we can use.

    Kent – thanks for your input too. I’d also like to see updates more often on web apps, even if it’s baby steps.

    – Andy Tabisz

    • Thanks for the feedback, Andy. Can you help me understand what kinds of client & vendor email scenarios you enabled with your hybrid solution?

  5. Great Feature. Thank you!
    1. Sender is no-reply@sharepoint is understood I would suggest add a feature to enable reply to (another email)..
    2. First time I know that Access web app supports HTML.
    Would you please advise what are the HTML possibilities in Access web apps?
    Also, being an Access web App developer – I have no knowledge of HTML so where you would recommend me to read in order to learn basic things to help me format my SendEmail email messages the way I want?

    • Great feedback. Thanks, Yahya.
      1. What other reply-to’s would you like supported?
      2. On HTML – Access uses HTML in the web apps, but because we’re targeting no-code solutions we don’t support HTML coding in Access. The SendEmail feature is an exception.

      Thanks much!

      • Thanks Joe.
        I explain as for instance, being a Manager at work, it is now wonderful that a user gets an email notification whenever I assign a Project or a ProjectTask to that user. I have made my App that only an “admin can edit in certain tables so users cannot change AssignedToID, means Project or Project Task assigned to a user cannot be changed by them, this is made to control responsibilities.

        So when a user is done with his task, rather than send me a feedback email message or forward the SendEmail email message he got from No-reply@sharepoint, better hit the reply button while the reply to should be customized to any email address of an internal user such as a shared mailbox of projects@domainname.com, which not only me could have access to, but also possibly my assistance.

        Admin when he gets this reply (or forward as of now) could look into the message and if he is fine with the feedback, he would navigate at the App to the record in discussion and change status of that Project or ProjectTask.

        As per my below comment, it would be even more nice if the original message contains a hyperlink to the record in discussion which has originally initiated the SendEmail email message.

        PS: Where is best to pass you other Feature Requests about Access Web Apps? I am at Microsoft Office 365 Network at yammer and rarely I get a reply to posts from Microsoft even though imam posting in Access IT Pro Group.

        • One more thing.. Sender’s Email Display Name now is Site Name where the App is installed. It is needed that Display Name shall be App Name or leave it to developer to customize.

  6. I have another thing to Suggest: considering that SendEmail feature is a table event action, it would be nice if the email message contains a hyperlink to the record which has triggered the SendEmail, in order, for instance for the user to browse and edit the record supporting it as a Task assigned to that User and later he wants to mark as Completed. Alternatively, to reply that email using a dropdown list or so.

    • We’ll certainly consider that for future iterations. Thanks for the feedback.

  7. I´ve tried it with External Users emails (i.e. external users loged registered into Office 365, with emails diferente to @mydomain.onmicrosoft.com) and It worked fine. The improvement will be complete with emails not registered to office 365.

    SharePoint Team, please do not forguet Access web App online reports on future iterations too!!

    • Hey Gabe – I’m glad you were able to get External User to work with Send Email. External Users are a super useful tool for Access Web Apps. Thanks for the feedback on reports!

  8. Hello Office Creative Content Development, I have something that might be very interesting to consider..

    In Access Web App (ABC.app), as you know, you can only import a table from another web app (XYZ.app), which makes the table imported from XYZ.app only a local copy table in ABC.app.
    Linking tables between apps isn’t an available feature that I hope will be on your list!

    But speaking about SendEmail Feature, I have an App called SRM.app, in which one table contains Suppliers.

    I need Suppliers in another App called Project_Manager.app, and so far, I open both apps (customize in Access), go to supplier table in both apps, and copy the records I didn’t every copy from SRM to PM.app.

    Hard to control etc especially that supplier tables are related to Contact tables!

    Very hard to ensure that data is the same in both tables in the 2 apps.

    My suggestion is (if you are not considering Linking tables) is that an App is given an email address that works as an inbox for the app – but have to deal with a table inside the app. So, suppose the email address will be

    tblsupplier@pm.domainname.com

    imagine thaqt you create an on insert sendEmail macro in tblSupplier in SRM app, and to send the supplier data to tblsupplier@pm.domainname.com, so once pm app receives the email behind the sense, PM apps extracts the info from the email message and seamlessly create an exact copy in PM app tblSupplier.

    What do you think?

    • Hey Yahya – Interesting idea. I think i’m hearing that you’d really like to be able to link to tables from any app inside an existing one. That certainly a scenario we need to think about, much like the way you can connect SharePoint Lists from different sites. Currently there’s no “app inbox” like functionality for Access, although it’s supported for SharePoint Cloud Object Model based Pro Dev apps. Thanks for the thinking!

      • Hello Joe,

        You are right, I am with the idea of being able to Link to tables of App ABC in another app, say XYZ. When you think of the use of Access web apps, you think of many possible applications. For my own business for instance, I have created an SRM APP, now developing a project manager app, and my next hit would be accounting app. there will always be cross linking between such apps, such as SRM will always have tblSupplier which I would need it anyhow in the other 2 apps, and it would not make sense to manually copy table contents because after the first copy, you will never know what right and what’s wrong.

        Another reason is privacy, I cant make everyone in my organization sees everything 🙂

        So, Linking tables between 2 apps, maing all apps have the same data and always up to date – is going to boost usability of Access web apps.

        The App inbox, as you noted, might be useful for other usages for users feedback mainly. inbox however have to be designed well to deal with tables inside apps, and should respect App rules (macros) etc,. Please write back if you think interesting to further brain storm..

        Apart from SendEmail, I have the following suggestions: –

        1. Add to Access web apps more controls including Radio Button,
        2. Add An Expand/Collapse control to expand a form within the existing view rather than the disturbing Popup,
        3. Please support add the Icons you have in the Actionbar possible to be added (individually) anywhere in the App, I am using Sidebar that I have designed and I use images which your original icons remain better looking 🙂
        4. Support doing something with the Close of a Popup view
        5. Support replacing an image even it is not a stored as a field (standalone image).
        6. Separate Access Accessibility from SharePoint site where the app is installed.

  9. I’m using SendMail in a data macro to send me an email when users log in but this raises an error when Read Only users log into the app.

    While the Error message tells them that they do not have permission to view the app, they clearly do but cannot change the data which is as intended.

    Am I correct in saying that Data Macros are subject to the permission level of the user? And therefore you cannot run a data macro if the user does not have at least ‘Contribute” permission.

    • Permission in Access web apps inherits permission of the site where the app is located, something Microsoft should consider separate totally. I.e., develop “App Permission”. Until then, every member in the site can have his Site Permission in any App.. weird.

      • Best way to manage this is to use a Sub Site for your app and apply permissions to that Sub Site.

        But that doesn’t answer my question about whether Data Macros are subject to the user’s permission level.

  10. Thinking about SendEmail feature, the feature works with the data macros as known.

    Now suppose I want the app to send to Users an email reminding them of a task 1 day before the Task is due. very simple to do a data macro and then run it from the On Start Macro. Nice.

    However, there must be a way behind the sense to SendEmail despite if the app is launched or no, I suggest a Daily/Hourly Macro feature addition.

    • Annoying enough also that if I make the macro above, it will SendEmail every time the project is launched that day, and it could be hundred times! Any better ideas?

      • Easy enough to log your sends and only send and log if no record is found for today.

        • @kentgorrell – Thank you for the hint. It still needs that lunching the App (daily) though. not hard anyhow.

Comments are closed.