BSP email with option (YES/NO) or (ACCEPT/REJECT)
Is it possible to send email from BSP with option for YES OR NO.
I have to send a mail to employee for confirmation i.e YES/NO and want to read the confirmation too.
Can someone help me out it that.
Hi Manisha,
As mentioned by me above,here the form is a attachment and the user is required to download to fill it and click yes/no button. Here is some sample code which sends a form to be filled by user and as he clicks on submit, the mail is sent back to me.
You just modify the code to have click buttons for yes and no and use the code.
<html>
<head>
<title>Enter the title of your HTML document here</title>
</head>
<body>
<form name="input_form"><pre>
Name: <input name="username" type="text">
Comment: <input name="comment" type="text">
</pre></form>
<script>
function update_message_body ()
var username = document . input_form . username . value;
var comment = document . input_form . comment . value;
var txt="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
txt=txt+"<candidate_details>\n"
txt=txt+"<name>" + username + "</name>\n"
txt=txt+"<comment>" + comment + "</comment>\n"
txt=txt+"</candidate_details>\n";
document . proxy_form . message_body . value = txt;
return true;
</script>
<form name ="proxy_form"
method ="post"
enctype ="multipart/form-data"
action ="mailto:[email protected]?subject=Form Data"
onSubmit="return update_message_body ();">
<input type=hidden name="message_body">
<input type=submit value="send mail">
</form>
</body>
</html>
You need to move all this code to an internal table. Attach it to mail and send mail.
Hope this will help you.
Regards,
Pragya
Similar Messages
-
I have Windows 7, Microsoft Outlook and PSE 13. I have used the "Share photos as embedded images" feature frequently, but today when I went to use it, it wasn't there, only the option to send email with files attached. How do I get back the ability to send emails with photos embedded. I like adding the frames and backgrounds and I think it's easier for recipients to look at the photos. Thanks for any suggestions of things to try.
GailI had a similar problem in that my wife's iphone 5 could not send pics with imessage. Had to set the settings to default to SMS or whatever. After laboring many hours on the web I coincidentally was on the phone with the internet people to question my internet speed. They changed the router channel, which is something that I am capable of doing myself. After that, the pics go over imessage. My own Iphone didn't have the problem. We are both latest IOS 7.0.6.
-
I received an email with a video attachment in wmv format. I want to saved it on my iPhone 4S but it doesn't give the option of saving the video attachment. How will I saved the video attachment?
Even so, there is no way to "save" a file anyway. The only way to keep it is to keep the email with it attached. Someone correct me if I'm wrong but I don't believe there is a way to add a video this way into the Videos app.
-
Why can't apple's Pages be programmed to export only iTunes acceptable ePub files, suggesting corrections with options?
You can ask Apple to do that via
http://www.apple.com/feedback
Do you find the guidance given in
http://support.apple.com/kb/HT4168
misleading in some way? -
My yahoo account is not accepting emails with picture attachments. Other wifi features are working. Other iPad and iPhone devises using this wireless router are accepting photo attachments. How do I have to configure my ipad2 to accept photo attachments on it?
This did not help, thanks for the suggestion but my settings match this description on both devices and no result.
-
Send Email with Attachment in BSP?
Hello,
I have trouble about sending Email in BSP .
I don't know how to <b>Send Email with attachment in BSP</b> . Please give me some advice .
Thank you very much!Here is a sample application..
<b>Layout</b>
<%@page language="abap" %>
<%@extension name="htmlb" prefix="htmlb" %>
<htmlb:content design="design2003" >
<htmlb:page title="Send Mail with Attachment " >
<htmlb:form id = "form1"
encodingType = "multipart/form-data" >
<htmlb:label for = "MAILTO"
text = "Mail to" />
<htmlb:inputField id = "MAILTO"
size = "20"
value = "<%= mail_to %>"
type = "string" />
<htmlb:fileUpload id = "myUpload"
onUpload = "HandleUpload"
upload_text = "Attach"
size = "90" />
</htmlb:form>
</htmlb:page>
</htmlb:content>
<b>Page attributes:</b>
mail_to TYPE ADR6-SMTP_ADDR E-Mail Address
<b> Event handler OnInputprocessing..</b>
DATA: fileUpload TYPE REF TO CL_HTMLB_FILEUPLOAD,
file_content TYPE XSTRING,
file_length TYPE STRING,
file_mime_type TYPE STRING,
file_name TYPE STRING.
fileUpload ?= CL_HTMLB_MANAGER=>GET_DATA(
request = request
id = 'myUpload'
name = 'fileUpload' ).
if fileUpload is not INITIAL.
file_name = fileUpload->file_name.
file_mime_type = fileUpload->file_content_type.
file_length = fileUpload->file_length.
file_content = fileUpload->file_content.
mail_to = request->get_form_field( `MAILTO` ).
* Send mail part..
CLASS cl_bcs DEFINITION LOAD.
DATA:
lo_send_request TYPE REF TO cl_bcs VALUE IS INITIAL.
lo_send_request = cl_bcs=>create_persistent( ).
* Message body and subject
DATA:
lt_message_body TYPE bcsy_text VALUE IS INITIAL,
lt_att_content_hex type solix_tab,
lo_document TYPE REF TO cl_document_bcs VALUE IS INITIAL.
APPEND 'Dear Vendor,' TO lt_message_body.
append ' ' to lt_message_body.
APPEND 'Please find the attached report.'
TO lt_message_body.
append ' ' to lt_message_body.
APPEND 'Thank You,' TO lt_message_body.
lo_document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = lt_message_body
i_subject = 'Visit report' ).
data: data_tab type solix_tab,
p_data type XSTRING.
* Pass the data of the document we have uploaded..
p_data = file_content.
call function 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = p_data
TABLES
binary_tab = data_tab.
DATA: lx_document_bcs TYPE REF TO cx_document_bcs VALUE IS INITIAL.
TRY.
lo_document->add_attachment(
EXPORTING
i_attachment_type = 'PDF'
i_attachment_subject = 'Visit Report'
i_att_content_hex = data_tab ).
CATCH cx_document_bcs INTO lx_document_bcs.
ENDTRY.
* Add attachment
* Pass the document to send request
lo_send_request->set_document( lo_document ).
* Create sender
DATA:
lo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL,
l_send type ADR6-SMTP_ADDR value '[email protected]'.
* Set sender
l_send = mail_to.
lo_sender = cl_cam_address_bcs=>create_internet_address( l_send ).
lo_send_request->set_sender(
EXPORTING
i_sender = lo_sender ).
* Create recipient
DATA:
lo_recipient TYPE REF TO if_recipient_bcs VALUE IS INITIAL.
lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
** Set recipient
lo_send_request->add_recipient(
EXPORTING
i_recipient = lo_recipient
i_express = 'X' ).
lo_send_request->add_recipient(
EXPORTING
i_recipient = lo_recipient
i_express = 'X' ).
* Send email
DATA: lv_sent_to_all(1) TYPE c VALUE IS INITIAL.
lo_send_request->send(
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = lv_sent_to_all ).
COMMIT WORK.
endif.
Hope this will be helpful.
Raja T -
Hi,
I am using CRM ONLINE 2013.
How to automate below process?
1. On Approval Of Quotation, Run Report.
2. Generate PDF.
3. Send an Email With PDF as attachment.
As i have gone through many forums for this topic, but creating a plugin code for generating Report PDF is not possible in CRM ONLINE.
So, What is the alternate way to do this..?
Thanks.This is my entire code mentioned below:-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof (SDK) == "undefined")
{ SDK = { __namespace: true }; }
SDK.JScriptRESTDataOperations = {
_context: function () {
if (typeof GetGlobalContext != "undefined")
{ return GetGlobalContext(); }
else {
if (typeof Xrm != "undefined") {
return Xrm.Page.context;
else { return new Error("Context is not available."); }
_getServerUrl: function () {
var serverUrl = this._context().getServerUrl()
if (serverUrl.match(/\/$/)) {
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
return serverUrl;
_ODataPath: function () {
return this._getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
_errorHandler: function (req) {
return new Error("Error : " +
req.status + ": " +
req.statusText + ": " +
JSON.parse(req.responseText).error.message.value);
_dateReviver: function (key, value) {
var a;
if (typeof value === 'string') {
a = /Date\(([-+]?\d+)\)/.exec(value);
if (a) {
return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
return value;
Create: function (object, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 201) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send(JSON.stringify(object));
Retrieve: function (id, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("GET", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
Update: function (id, object, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "MERGE");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 204 || this.status == 1223) {
successCallback();
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send(JSON.stringify(object));
Delete: function (id, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "DELETE");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 204 || this.status == 1223) {
successCallback();
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
RetrieveMultiple: function (type, filter, successCallback, errorCallback) {
if (filter != null) {
filter = "?" + filter;
else { filter = ""; }
var req = new XMLHttpRequest();
req.open("GET", this._ODataPath() + type + "Set" + filter, true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d.results);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
__namespace: true
</script>
<script type="text/javascript">
//Create Email and link it with Order as Regarding field
var Xrm;
var email = new Object();
var ownerID = "";
var CustomerId = "";
if (window.opener) { Xrm = window.opener.Xrm; }
else if (window.parent) { Xrm = window.parent.Xrm; }
//Get ownerid who send email of quotation to customer
function GetOwnerID() {
var owner = Xrm.Page.getAttribute("ownerid").getValue();
ownerID = owner[0].id;
var ownerName = owner[0].name;
var entityType = owner[0].entityType;
GetToEmailGUID();
//Get customerid who receive email of quotation from owner
function GetToEmailGUID() {
var Customer = Xrm.Page.getAttribute('customerid').getValue();
CustomerId = Customer[0].id;
var CustomerName = Customer[0].name;
var entityType = Customer[0].entityType;
//if CustomerId is type of "Account" then get Primary Contact id of that account
if (entityType == "account") {
var contact = Xrm.Page.getAttribute("customerid").getValue();
if (contact === null) return;
var serverUrl = Xrm.Page.context.getClientUrl();
var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" + contact[0].id + "')?$select=PrimaryContactId";
var req = new XMLHttpRequest();
req.open("GET", oDataSelect, false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json;charset=utf-8");
req.onreadystatechange = function () {
if (req.readyState === 4) {
if (req.status === 200) {
var retrieved = JSON.parse(req.responseText).d;
CustomerId = retrieved.PrimaryContactId.Id;
else {
alert(this.statusText);
req.send();
function CreateEmail() {
GetOwnerID();
email.Subject = "Email with Report Attachment";
//Set The current order as the Regarding object
email.RegardingObjectId = {
Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
//Create Email Activity
SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
// Email Call Back function
function EmailCallBack(result) {
email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
var activityPartyFrom = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyFrom.PartyId = {
Id: CustomerId, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
LogicalName: "contact"
// Set the "activity" of the ActivityParty
activityPartyFrom.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
// Create the from ActivityParty for the email
SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
var activityPartyTo = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyTo.PartyId = {
Id: ownerID, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
LogicalName: "systemuser"
// Set the "activity" of the ActivityParty
activityPartyTo.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
// Create the from ActivityParty
SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
//ActivityParty From Callback
function ActivityPartyFromCallBack(result) {
//ActivityParty To Callback
function ActivityPartyToCallBack(result) {
GetReportId('ABM_Infotech_SalesQuote');
//Create attachment for the created email
function CreateEmailAttachment() {
//get reporting session and use the params to convert a report in PDF
var params = getReportingSession();
//Email attachment parameters
var activitymimeattachment = Object();
activitymimeattachment.ObjectId = Object();
activitymimeattachment.ObjectId.LogicalName = "email";
activitymimeattachment.ObjectId.Id = email.ActivityId;
activitymimeattachment.ObjectTypeCode = "email",
activitymimeattachment.Subject = "File Attachment";
activitymimeattachment.Body = encodePdf(params);
activitymimeattachment.FileName = "Report1.pdf";
activitymimeattachment.MimeType = "application/pdf";
//Attachment call
SDK.JScriptRESTDataOperations.Create(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { alert(error.message); });
//ActivityMimeAttachment CallBack function
function ActivityMimeAttachmentCallBack(result) {
var features = "location=no,menubar=no,status=no,toolbar=no,resizable=yes";
var width = "800px";
var height = "600px";
window.open(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", features);
// To open window which works in outlook and IE both
//openStdWin(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", width,
height, features);
//This method will get the reportId based on a report name that will be used in getReportingSession() function
function GetReportId(reportName) {
var oDataSetName = "ReportSet";
var columns = "ReportId";
var filter = "Name eq '" + reportName + "'";
retrieveMultiple(oDataSetName, columns, filter, onSuccess);
function retrieveMultiple(odataSetName, select, filter, successCallback) {
var serverUrl = Xrm.Page.context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?";
if (select) {
odataUri += "$select=" + select + "&";
if (filter) {
odataUri += "$filter=" + filter;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataUri,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
success: function (data) {
if (successCallback) {
if (data && data.d && data.d.results) {
successCallback(data.d.results);
else if (data && data.d) {
successCallback(data.d);
else {
successCallback(data);
error: function (XmlHttpRequest, errorThrown) {
if (XmlHttpRequest && XmlHttpRequest.responseText) {
alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText);
function onSuccess(data) {
reportId = data[0].ReportId.replace('{', ").replace('}', ");
CreateEmailAttachment(); // Create Email Attachment
//Gets the report contents
function getReportingSession() {
var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
var retrieveEntityReq = new XMLHttpRequest();
var Id = Xrm.Page.data.entity.getId();
var quotationGUID = Id.replace('{', ""); //set this to selected quotation GUID
quotationGUID = quotationGUID.replace('}', "");
var reportName = "ABM_Infotech_SalesQuote"; //set this to the report you are trying to download
var reportID = "751089AA-74B8-E211-B52F-D8D3855B253B"; //set this to the guid of the report you are trying to download
var rptPathString = ""; //set this to the CRMF_Filtered parameter
var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='quote'><all-attributes /><filter type='and'><condition
attribute='quoteid' operator='eq' uitype='quote' value='" + quotationGUID + "' /> </filter></entity></fetch>";
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
rptPathString = "id=%7B" + reportID + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName="
+
reportName + "&isScheduledReport=false&p:ABMFilteredQuote=" + strParameterXML;
//remove the part starting from &p:salesorderid if your report has no parameters
retrieveEntityReq.send(rptPathString);
var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
var ret = new Array();
ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
x = retrieveEntityReq.responseText.indexOf("ControlID=");
ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
return ret;
var bdy = new Array();
var bdyLen = 0;
function concat2Bdy(x) {
bdy[bdyLen] = x;
bdyLen++;
function encodePdf(params) {
bdy = new Array();
bdyLen = 0;
var retrieveEntityReq = new XMLHttpRequest();
var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] +
"&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] +
"&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
retrieveEntityReq.open("GET", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.send();
BinaryToArray(retrieveEntityReq.responseBody);
return encode64(bdy);
var StringMaker = function () {
this.parts = [];
this.length = 0;
this.append = function (s) {
this.parts.push(s);
this.length += s.length;
this.prepend = function (s) {
this.parts.unshift(s);
this.length += s.length;
this.toString = function () {
return this.parts.join('');
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
var output = new StringMaker();
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length) {
chr1 = input[i++];
chr2 = input[i++];
chr3 = input[i++];
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
return output.toString();
</script>
<script type="text/vbscript">
Function BinaryToArray(Binary)
Dim i
ReDim byteArray(LenB(Binary))
For i = 1 To LenB(Binary)
byteArray(i-1) = AscB(MidB(Binary, i, 1))
concat2Bdy(AscB(MidB(Binary, i, 1)))
Next
BinaryToArray = byteArray
End Function
</script>
</head>
<body>
<input type="button" onclick="CreateEmail();" value="Attach Report" />
</body>
</html> -
Email with attachments QPAC: setting "From" using process data doesn't work
Hi,
I trying to set the "From" in the Email with attachments QPAC from a process variable, let's call it "mailagent", which is of type xs:string.
So I use a set value QPAC, which sets the "mailagent" variable to "[email protected]". The workflow then continous with the Email QPAC.
Which stalls and throws the following exception:
javax.mail.MessagingException: 501 Syntax error, parameters in command "MAIL FROM:<{$/process_data/@mailagent$}>" unrecognized or missing
Hrm. I thought, I had already used the Email QPAC this way.
Is there some kind of magic to apply to the Email with attachments QPAC in order for it to accept process data in the "From"?
SteveYes, I'm sure, it worked for us to. But it obviously no longer does.
Yes, "mailagent" definitely is a variable of type string, though it's of type
xs:string. I'm no longer able to create variables, which don't feature the
xs namespace. Which is quite confusing as I've got absolutely no idea, what the
xs is used for.
We are using LiveCycle Workflow 7.2.1, the Email QPAC is 7.0.2. Is this the latest version?
Steve -
I need to send to a group of about 50 parents. Their addresses are held in a Group of Contacts. I highlight the group name to distribute a message to all of them and what I am being told is that they can then all see every email address. This is not acceptable as many do not want their email address being made public in this way. Surely this should not happen or at least there should be a way to avoid it.
re: and I quote "they can then all see every email address. This is not acceptable "
I showed you the basic method of sending a group as Bcc - which is what you initially asked for.
As you now specify that not only do you want to know how to use Bcc but every email needs to be personalised - not just distributing a message to all of them, then I would agree with Matt and advise you use Mail Merge. This creates separate emails - not a bulk email to several recipients, so using a TO field will only send to that person - other people will not see other email addresses.
Matt has offered the link.
Here is some more info regarding Mail Merge.
'''How to install Add-ons:'''
download the .xpi file to your computer eg: desktop or downloads folder.
In Thunderbird
'Tools' > 'Add-ons' OR 'Menu Icon' > 'Add-ons'
click on the gear wheel icon and select 'Install addon from file'
see first image below as aid.
locate the file you downloaded and click on 'Open'
You may need to restart Thunderbird.
Mail Merge will appear in the list.
see second image below.
'''How to set up a Template emails for Mail Merge:'''
Create a Template email, which contains the 'personalised' sections.
see example - third image below.
I set the Subject as 'Mail Merge' so it is easily identifiable.
Save it as a Template email.
It will get stored in the 'Templates' folder. If you do not see a Templates folder, this is auto created when you create the first email and store as template.
'''When you want to use Mail Merge.'''
Select the Template folder.
Select the 'Mail Merge' template
either double click on the email in the list or right click on email and select 'Edit as new message'
you can then change the Subject and compose or edit the message - but do not change the sections in the curly brackets - the point of saving this as a template saves you from typing it each time.
'File ' > 'Mail Merge' (see third image)
This will open a new small window
see the fourth image below.
I would suggest you use 'Send Later' option . this will put all the emails in your Outbox, but it does allow you to check the email is correct - or do spot checks. Then you can choose to send them all in one go.
Right click on 'Outbox' folder and select 'Send unsent messages'.
Hope this info helps you.
As you are new to Thunderbird, you may or maynot have managed to locate all your toolbars.
The fifth image shows you how to enable all toolbars to make life much easier.
In addition some very useful info on maintaining a healthy Thunderbird and all about compacting- what it does and why it is important.
* http://kb.mozillazine.org/Keep_it_working_-_Thunderbird
* http://kb.mozillazine.org/Compacting_folders -
I have a new ipad 2. The mail program refuses to send forwarded emails because the recipient "doesn't accept relays." My desktop and Blackberry forward emails to those recipients without difficulty. Help.
I suspect that you are using the Forwarding option within Workgroup Manager, and this works outside of the postfix alias scheme. I think you should just set those users you are forwarding to, to normal mail users, and put their forwarding rules ALSO in the alias file, so you would have:
MAILER-DAEMON: postmaster
postmaster: alex,yong
alex: [email protected]
That should do it. You really have to commit to either using Workgroup Manager or Postfix in their entirety. They don't really work too nicely in conjunction with each other. -
How can i send Email with attacment in pdf/xls with pass word protect
Hi
Can i send Email with attachment in pdf/xls with password protect in oracle apps .Here we want monthly stmt to send the customer with pdf/Xls with
password protect.Is it possible if yes how
ThanksOne option is to convert the report to XML Publisher (which you might have already done as you are asking PDF/XLS), then look into the links below:
http://blogs.oracle.com/xmlpublisher/2007/09/11/
http://blogs.oracle.com/xmlpublisher/2010/02/securing_burst_output_document.html
http://blogs.oracle.com/xmlpublisher/2007/06/merge_and_secure_pdfs.html -
CDONTS: Send Email with Summary of Items
Thanks for looking at this.
I want to do is send an email message to the site
administrator whenever a customer registers product serial numbers.
The email would have the customers name, address, etc at the top
and then a table of product serial numbers below. Their could be
one or 50 individual rows. So it many ways, it is like a receipt
one would receive after making a purchase from an store online.
While formatting and sending the message isn't' the problem,
the summary section has me puzzled. How do I send my recordset
content in the form of a table to the email message? I can easily
create a recordset that grabs the customer's info and the products
purchased but how do I create the equivalent of the repeating
regions in the email message?
I'm sure I'm not using the correct terminology to describe
what I want so please accept my apologies if I have confused.
Any feedback would be appreciated.Hi Echo Train,
I would still look at using a Workflow for this. Easiest option to setup and maintain, and
you can still enter an email (or multiple emails) on demand.
For the List Workflow click on Initiation Parameters and add one with
Field name of Email for example.
Description (something like): "Please enter the email(s) you wish to send the list item information. Separate each email with a semi colon ;"
Information type: Single line of text
Default value: leave it blank
Next add a Send an Email action with the following settings:
To: Select from existing Users and Groups > Workflow Lookup for a User...
> Data source: Workflow Variables and Parameters
> Field from source: Parameter: Email
> Return field as: As String
Then setup your Subject and Body using the Fields from the Current List Item
Save the Workflow then go back into the Workflow settings and ensure that: Allow this workflow to be manually started is the only option selected.
Publish the workflow and your users should now be able to click on the Workflow with the ability to enter one or more emails.
There are other options apart from using a Workflow such as setting up an Action with some ECMA script, but much more difficult to create and maintain, which in this instance I would still opt for the Workflow solution. -
Can I send an email with a meeting or flight schedule to ical and have it sync?
can I send an email with a meeting or flight schedule to ical and have it sync?
Hello Fernando,
Yes, you can send mail for success and failure of process chain
1. Select particular node in which you want to get mail.
2.Right click select create message.
3. It will show 3 options for Success , Error, and For both. check what you want.
4. It will ask for Process variants.
5. Select Create variants. It will ask process variants name and Long description.
6. Now it will show maintain recipient List. Select this give emailid of your.
7. Save it.
In Email you will get Data Target name, Process Chain name and request no. and description for error message .
Mail will be like this(this mail is for process chain when it has failed)u2014
Process Activate XXXXXXXX Of Type Activate ODS Object Data Has
Status Ended with errors (Process Chain YYYYYYYYYY)
Log for This Process: Request REQU_4GO3ZZZZZZZZZZZZZZZ in ODS XXXXXXXX must have
QM status green before it
Activation of data records from ODS object XXXXXXXX
terminated
Log of Respective Background Job:
Job started
Step 001 started (program RSPROCESS, variant &0000000276751,
user ID WWWWW)
Request REQU_4GO3ZZZZZZZZZZZZZZZ in ODS XXXXXXXX must have QM
status green before it is activated Activation of data records
from ODS object XXXXXXXX terminated
Request REQU_4GO3ZZZZZZZZZZZZZZZin ODS XXXXXXXX must have QM
status green before it is activated Activation of data records
from ODS object XXXXXXXX terminated.
Thanks
Abha -
Blackberry email accept/reject contextmenu
Hi,
I'm looking for a way for a Blackberry user to be able to respond to his emails by a contextmenu by either Accepting or Rejecting the mail.
The response should go back to a particular email address with the yes/no in the subject.
Any help would be greatly appreciated.
Thanks in advance !If you mean you [email protected] address the answer is no. You could always forward messages from your phone to another email account that you can access on your PC.
-
HP LASERJET CP1525nw print error when printing online Gmail emails with Google Chrome
HP LASERJET CP1525nw print error when printing online Gmail emails with Google Chrome. Extra large font sizes and weird formatting issues only when printing emails from Gmail within Chrome. No problems when printing the same email from Gmail+Internet Exolorer or Thunderbird. Using the IE Tab extension in Chrome prints the email correctly but the style of Gmail's message window is completely weird ie: formatting bar is spread out vertically instead of horizontally. I believe it is clear that this is an application specific issue between the HP LASERJET CP1525nw printer and Google Chrome + Gmail. This printing scenario does not occur when printing anything else or when printing via another printer. I would appreciate receiving any suggestions to solve this issue.
OS: Windows 7 Ultimate x64
Browser: Google Chrome 15
HP Print driver: HP Universal Print Driver for Windows PCL6 v5.4.0
Printer is connected by WiFi to 4 computersHi AbZu,
You need to contact Google Chromes technical support as this is only an issue with Chrome. You have indicated that the printer functions correctly everywhere else. Check out the link below for Google Chrome technical support. Let me know if you need additional assistance?
http://support.google.com/chrome/?hl=en
I am an HP employee.
Say Thanks by clicking the Kudos Star in the post that helped you.
Please mark the post that solves your problem as "Accepted Solution"
Maybe you are looking for
-
Hi, Please help me out to find a table that has viewname details of any transparent table.I searched few DD* tables but couldnt get one.
-
Hello Everyone, I have a form that needs a little love.....I have it setup to take values from drop downs and match the values from numeric fields with the dropdowns and multiply the information depending on what is selected. The problem I am runnin
-
Self-explanatory
-
Can I change the arrow direction in the slider
I am using system slider on the front panel. The default arrow point to the left side. Can I change it to point to right side. Thanks,
-
Adobe Suite CS5 - "Cannot save files" - files are Read Only files
I had a power failure and now have a back up battery installed so I'm set for future outage. But it corrupted my Creative Suite program. I keep getting this error "Cannot save "untitled-1" under a new name. The file "DBT mp542438996529" is da