Quick jump |
How to send an email to a predefined address
To send an email with several selected records on the List page, you need to create a custom button.
1. Proceed to the Page Designer screen.
2. Create an Update selected custom button and add the following code snippets into it:
Server tab:
StringBuilder body = new StringBuilder();
XVar rmail = XVar.Array();
XVar data;
while(data = button.getNextSelectedRecord())
{
body.AppendLine(String.Format(
"OrderID: {0} \n" +
"Customer: {1} \n" +
"Employee: {2} \n" +
"------------------",
data["OrderID"], data["CustomerID"], data["EmployeeID"]));
}
rmail["to"] = "test@test.com";
rmail["subject"] = "Sample subject";
rmail["body"] = body.ToString();
var arr = MVCFunctions.runner_mail(rmail);
result["txt"] = "Emails were sent.";
if(!arr["mailed"])
{
result["txt"] = "Error happened: " + arr["message"].ToString();
}
Client After tab:
var message = result["txt"];
ctrl.setMessage(message);
Note: The Client Before tab should be blank (delete sample code there if any).
Sample email message:
OrderID: 10249
Customer: TRADH
Employee: 6
-------------------
OrderID: 10251
Customer: VICTE
Employee: 3
-------------------
OrderID: 10253
Customer: HANAR
Employee: 3
-------------------
How to send an email to the currently authorized user
Instead of a hardcoded email address, you can send email to the current user.
1. The email address is used as the username
var email = XSession.Session["UserID"];
2. The email address is stored in an individual field
In this case, you need to save the email address to the session variable in the AfterSuccessfulLogin event:
XSession.Session["email"] = data["email"];
BeforeProcess event code:
var email = XSession.Session["email"];
See also:
•Send an email to selected users
•How to email selected records as separate PDF files
•Grid Row Javascript API: row.getKeys()
•JavaScript API:getSelectedRecordKeys()
•Button object: getNextSelectedRecord()
•AJAX helper object: setMessage()