How to send email - SAPUI5 - email

I am trying to send sample email in SAPUI5. I have used sap.m.URLHelper.triggerEmail(["dummy#mail.com"], ["sample Subject"], ["Hi"]);. But it is not working. I have also tried using window.top.location = "mailto:" + email + "&subject=" + subject + "&body=" + message;. But no luck.

Try this:
sap.m.URLHelper.triggerEmail("dummy#mail.com", "sample Subject", "Hi");
It should be without the [ ] because the parameters that triggerEmail expects are of type string

Related

Bold text on google form response email

I've this script done in google forms to send an email.
I'd like to add bold on "var message" and "message"
function onFormSubmit(e) {
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "Hello, this a new vacation request by an agent "+e.namedValues[headers[7]]+": \n \n";
var subject = "New Holiday Request";
for(i=1 ; i < 7; i++) {
message += headers[i] + ': ' + e.namedValues[headers[i]] + "\n\n";
}
var email = e.namedValues[headers[7]] + '#google.com';
//Logger.log(email);
MailApp.sendEmail(email, subject, message);
}
the result is:
Hello, this a new vacation request by an agent tayzer:
Timestamp: 5/15/2020 17:56:11
Start date (From the, included): 5/15/2020
the expected is:
Hello, this a new vacation request by an agent tayzer:
Timestamp: 5/15/2020 17:56:11
Start date (From the, included): 5/15/2020
How about this modification?
In this modification, the message including the bold type is sent using htmlBody. When your script is modified, please modify as follows.
From:
var message = "Hello, this a new vacation request by an agent "+e.namedValues[headers[7]]+": \n \n";
var subject = "New Holiday Request";
for(i=1 ; i < 7; i++) {
message += headers[i] + ': ' + e.namedValues[headers[i]] + "\n\n";
}
var email = e.namedValues[headers[7]] + '#google.com';
//Logger.log(email);
MailApp.sendEmail(email, subject, message);
To:
var html = "<b>Hello, this a new vacation request by an agent "+e.namedValues[headers[7]]+":</b><br><br>";
var subject = "New Holiday Request";
for(i=1 ; i < 7; i++) {
html += "<b>" + headers[i] + ':</b> ' + e.namedValues[headers[i]] + "<br><br>";
}
var email = e.namedValues[headers[7]] + '#google.com';
MailApp.sendEmail({to: email, subject: subject, htmlBody: html});
Note:
In this case, when the client can read the HTML mail, the bold type can be seen. When the client cannot read the HTML mail, the text is shown.
Reference:
sendEmail(message)

Ignoring blank email address input field Google Apps Script

I have an HTML form which contains email addresses from various suppliers. I am creating a kind of mail merge function so I can send all the contacts a personalised email when the form is submitted. Here is my .gs file:
function sendEmail(form) {
const sSheet = SpreadsheetApp.getActiveSpreadsheet();
const file = DriveApp.getFileById(sSheet.getId());
const documentUrl = file.getUrl();
/* var toEmail = form.toAddress;
var ccEmail = form.ccAddress;
var fromEmail = "****#*****.com";
var subject = form.subject;
var message = form.message; */
var toEmail = "";
var fromEmail = "****#*****.com";
var message = "";
var hotelAddresses = [
form.toAddress1,
form.toAddress2,
form.toAddress3,
form.toAddress4,
form.toAddress5,
form.toAddress6,
form.toAddress7,
form.toAddress8,
form.toAddress9,
form.toAddress10,
form.toAddress11,
form.toAddress12,
form.toAddress13,
form.toAddress14,
form.toAddress15,
form.toAddress16,
form.toAddress17,
form.toAddress18,
form.toAddress19,
form.toAddress20,
form.toAddress21,
form.toAddress22,
form.toAddress23,
form.toAddress24,
form.toAddress25,
form.toAddress26,
form.toAddress27,
form.toAddress28,
form.toAddress29,
form.toAddress30,
form.toAddress31,
form.toAddress32,
form.toAddress33,
];
var contactNames = [
form.contactName1,
form.contactName2,
form.contactName3,
form.contactName4,
form.contactName5,
form.contactName6,
form.contactName7,
form.contactName8,
form.contactName9,
form.contactName10,
form.contactName11,
form.contactName12,
form.contactName13,
form.contactName14,
form.contactName15,
form.contactName16,
form.contactName17,
form.contactName18,
form.contactName19,
form.contactName20,
form.contactName21,
form.contactName22,
form.contactName23,
form.contactName24,
form.contactName25,
form.contactName26,
form.contactName27,
form.contactName28,
form.contactName29,
form.contactName30,
form.contactName31,
form.contactName32,
form.contactName33,
];
var days = [
form.day1,
form.day2,
form.day3,
form.day4,
form.day5,
form.day6,
form.day7,
form.day8,
form.day9,
form.day10,
form.day11,
form.day12,
form.day13,
form.day14,
form.day15,
form.day16,
form.day17,
form.day18,
form.day19,
form.day20,
form.day21,
form.day22,
form.day23,
form.day24,
form.day25,
form.day26,
form.day27,
form.day28,
form.day29,
form.day30,
form.day31,
form.day32,
form.day33,
];
var dates = [
form.date1,
form.date2,
form.date3,
form.date4,
form.date5,
form.date6,
form.date7,
form.date8,
form.date9,
form.date10,
form.date11,
form.date12,
form.date13,
form.date14,
form.date15,
form.date16,
form.date17,
form.date18,
form.date19,
form.date20,
form.date21,
form.date22,
form.date23,
form.date24,
form.date25,
form.date26,
form.date27,
form.date28,
form.date29,
form.date30,
form.date31,
form.date32,
form.date33,
];
var times = [
form.time1,
form.time2,
form.time3,
form.time4,
form.time5,
form.time6,
form.time7,
form.time8,
form.time9,
form.time10,
form.time11,
form.time12,
form.time13,
form.time14,
form.time15,
form.time16,
form.time17,
form.time18,
form.time19,
form.time20,
form.time21,
form.time22,
form.time23,
form.time24,
form.time25,
form.time26,
form.time27,
form.time28,
form.time29,
form.time30,
form.time31,
form.time32,
form.time33,
];
var additionalInfo = [
form.additional1,
form.additional2,
form.additional3,
form.additional4,
form.additional5,
form.additional6,
form.additional7,
form.additional8,
form.additional9,
form.additional10,
form.additional11,
form.additional12,
form.additional3,
form.additional14,
form.additional15,
form.additional16,
form.additional17,
form.additional18,
form.additional19,
form.additional20,
form.additional21,
form.additional22,
form.additional23,
form.additional24,
form.additional25,
form.additional26,
form.additional27,
form.additional28,
form.additional29,
form.additional30,
form.additional31,
form.additional32,
form.additional33,
];
for(var i = 0; i<times.length; i++){
var subject = "Meeting - " + days[i] + ", " + dates[i] + " at " + times[i];
toEmail = hotelAddresses[i];
message = "Dear " + contactNames[i] + ","
+"<br><br>"+
"Please confirm the meeting on " + days[i] + " " + dates[i] + " at " + times[i] + "." + "<br>" + "<br>" +
additionalInfo[i] +
" If you could kindly let me know if you are able to confirm that would be great." + "<br>" + "<br>" +
"Many thanks and I look forward to hearing from you soon." + "<br>" + "<br>" +
"Yours sincerely," + "<br>" + "<br>" +
form.yourName + "<br>" + "<br>"
+ "<em><b>" + form.yourPosition + "</b></em> <br><br>" +
"<span style='color:#0e216d'><b> Company name. </b>" + "<br>" +
GmailApp.sendEmail(
toEmail, // recipient
subject, // subject
'test', { // body
htmlBody: message // advanced options
}
);
}
}
It works fine except that sometimes the input fields for email will be blank, in which case I need the script to ignore that supplier and continue to run. At the moment it is obviously hitting the empty input and stopping the execution.
I presume I need a conditional statement of sorts... something along the lines of if(hotelAddresses[i] != null) {}
But I cannot work out where to insert this...
Additional: 31 Aug 18
For the HTML I have a series of objects (33 in total) that are all set up like this:
<input type="checkbox" id="check1" class="check" checked>
<input type="text" id="name1" class="contactNameInput" name="toAddress1">
<input type="text" id="contactName1" class="contactNameInput mailName" name="contactName1">
<input type="text" id="time1" class="contactNameInput hidden mailTime" name="time1">
<input type="text" id="day1" class="contactNameInput hidden mailDay" name="day1">
<input type="text" id="date1" class="contactNameInput hidden mailDate" name="date1">
<textarea class="additional contactNameInput" id="additional1" name="additional1" placeholder="Additional requests..."></textarea>
<div class="preview1"></div>
You want to separate the cases with and without hotelAddresses[i] using a script like if(hotelAddresses[i] != null) {}. When my understanding is correct, how about this modification?
Modification points:
Do you want to add after "<span style='color:#0e216d'><b> Company name. </b>" + "<br>" +? In the current script, it's "<span style='color:#0e216d'><b> Company name. </b>" + "<br>" + GmailApp.sendEmail(...). If you want to add more strings, please put them. If you don't want to add, please remove the last +.
I think that the script of if(hotelAddresses[i] != null) {} can be used in the for loop.
The script which reflected above is as follows.
Modified script:
In this modified script, the script of for loop was modified.
for(var i = 0; i<times.length; i++) {
var toEmail = hotelAddresses[i];
if (toEmail) {
var subject = "subject";
var message = "messages";
GmailApp.sendEmail(toEmail, subject, 'test', {htmlBody: message});
} else {
// do something
}
}
Note:
In this modified script, subject and message are replaced by "subject" and "messages", respectively. So please modify them for your situation.
If you want to do something when hotelAddresses[i] is null, please modify // do something.
If you don't want to do something when hotelAddresses[i] is null, please remove else {}.
If I misunderstand your question, please tell me. I would like to modify it.

I am using action_send for Facebook sharing here insert image only but not added text what is the reason?

Here is Facebook sharing code:
String text = "Offer Ends:" + offerending + "\n Offer Type:"
+ offertype + "\n Address:" + offaddress + "\n"
+ webbsuitee;
String completePath = Environment.getExternalStorageDirectory()
+ "/" + "temporary_file.jpg";
File file = new File(completePath);
// Uri imageUri = Uri.fromFile(file);
Uri imageUri = Uri.fromFile(file);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello");
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));
It is closed by Facebook API. You need to use the Facebook SDK for Android to do so!
check this: https://developers.facebook.com/bugs/332619626816423

Google Apps Script - create draft Gmail email message WITH embedded graphics

I want to create a draft Gmail email message using Google Apps Script, like in the following example taken from Mogsdad's accepted answer to the Create draft mail using Google apps script question:
function createDraft() {
var forScope = GmailApp.getInboxUnreadCount(); // needed for auth scope
var raw =
'Subject: testing Draft\n' +
//'To: test#test.com\n' +
'Content-Type: multipart/alternative; boundary=1234567890123456789012345678\n' +
'testing Draft msg\n' +
'--1234567890123456789012345678--\n';
var draftBody = Utilities.base64Encode(raw);
var params = {method:"post",
contentType: "application/json",
headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions:true,
payload:JSON.stringify({
"message": {
"raw": draftBody
}
})
};
var resp = UrlFetchApp.fetch("https://www.googleapis.com/gmail/v1/users/me/drafts", params);
Logger.log(resp.getContentText());
It works great, BUT I want to embedd some image in the message body, without linking to external URL, so it always shows up, it's not blocked by some email clients, including Gmail. How to do that?

multi-friend selector does not work in https (secure browsing enabled)

We are using facebook iframe app in https mode, from our app we need to send an invitation to multiple friends using multi-friend selector.
But when we click on Select Friends button, it is showing blank popup. It works fine for http (non secure browsing).
"<fb:serverfbml><script type=\"text/fbml\">" +
"<fb:fbml>" +
"<fb:request-form action=\"" + (HttpContext.Current.Request.IsSecureConnection ? ConfigurationManager.AppSettings["Callback"].Replace("http://", "https://") : ConfigurationManager.AppSettings["Callback"]) + "pagename.aspx?dbskip=true&fb_sig_user=" + fbuserid + "\"" +
"method=\"POST\"" +
"invite=\"true\"" +
"type=\"My App \"" +
"content=\"" + "my content" +
"<fb:req-choice url='" + "my choice"+ "'" +
"label='" + " my text "+ "'/>" +
"\">" +
"<fb:multi-friend-selector bypass=\"cancel\" email_invite=\"false\" max=\"35\" cols=\"5\" actiontext=\"Select friends to send invitation\" rows=\"3\"/>" +
"</fb:request-form></fb:fbml></script></fb:serverfbml>";
Thank in advance......
Maybe you shouldn't use legacy FBML now. It is deprecated.