How to send multiple attachments?
Sorry if this seems like an obvious question but can it be done? Do I need an extra app or helper?
Thanks in advance
Ernie,
I have had problems with sending some attachments to windows users.
i cant tell exactly what is causing it.
usually i am making .pages documents which i then export as PDFs.
many times windows users email me back that they cant even see the attached PDFs (not not open them, but cant even see them).
there seems to be some sort of bug. (yes, attach as windows friendly documents is selected).
some have suggested that attaching multiple attachments using the command click method might be at fault.
others have suggested that exporting to pdf might be a problem and the resulting pdf not always readable by windows users.
can you give any suggestion that might ensure windows users can always open my attached PDFs?
thanks
Similar Messages
-
How to send multiple attachments thru mail?
I haven't been able to figure out how from the mail application send docs, worksheets etc as attachment. Also how to attach multiple docs in the mail. Looking for help on this.
SparasharYou need to start in the app that contains the files that you want to send as attachments and use that app's functionality to select and attach files to an email, and not start in the Mail app e.g. the GoodReader app supports multiple document types (word and excel, read only, PDFs, text files, pictures) and allows you to select one or more of them and attach/switch with them to an email.
In the Mail app itself on iOS 6 you can now press and hold the body of the email and select photos from the Photos app to attach to it. -
How to send multiple attachments with the mail in jsp
hi.I wrote a code to send mail.but i need to send mail with multiple attachments.when i run this code iam able to send message but not files.i want to send files as attachments with the message.please help me.
<%@ page import="javax.mail.*,javax.mail.internet.*,java.util.Date,java.io.*,java.net.InetAddress,java.sql.*,java.util.Properties,java.net.*,javax.sql.*,javax.activation.*,java.util.*,java.text.*" %>
<%@ page import="java.io.*,java.sql.*,java.net.*,java.util.*,java.text.*" %>
<%
String Attachfiles1="";
String Attachfiles2="";
String Attachfiles3="";
if("Send".equalsIgnoreCase("send"))
try
String subject="",from="",url = null,to="";
String mailhost = "localhost";
Properties props = System.getProperties();
String msg_txt="";
String strStatus="";
String mailer = "MyMailerProgram";
to=request.getParameter("to");
from=request.getParameter("from");
subject=request.getParameter("subject");
msg_txt=request.getParameter("message");
props.put("mail.smtp.host", mailhost);
Session mailsession = Session.getDefaultInstance(props, null);
Message message = new MimeMessage(mailsession);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to, false));
message.setSubject(subject);
message.setHeader("X-Mailer", mailer);
message.setSentDate(new Date());
message.setText(msg_txt);
BodyPart messageBodyPart = new MimeBodyPart();
BodyPart messageBodyPart2 = new MimeBodyPart();
Multipart multipart = new MimeMultipart(); // to add many part to your messge
messageBodyPart = new MimeBodyPart();
javax.activation.DataSource source = new javax.activation.FileDataSource("path of the file");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("file_name");
messageBodyPart2.setText("message"); // set the txt message
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(messageBodyPart2);
Transport.send(message);
out.println("Message Sent");
catch (Exception e)
e.printStackTrace();
if("Attachfiles".equalsIgnoreCase("attachfiles"))
Attachfiles1=request.getParameter("fieldname1");
Attachfiles2=request.getParameter("fieldname2");
Attachfiles3=request.getParameter("fieldname3");
%>
<html>
<body>
<div class="frame">
<form action="Composemail.jsp" method="post">
<b>SelectPosition:</b> <select name="cars" >
<option value="ABAP">ABAP
<option value="saab">Saab
<option value="fiat">Fiat
<option value="audi">Audi
</select><br><br>
<table border="1" cellpadding="2" cellspacing="2">
<tr><th>Name</th>
<th>EmailId</th>
<th>ContactNumber</th>
<th>Position</th>
</tr>
<tr>
<td>
</td>
</tr>
</table><br>
<b>SelectUser :</b><select name="cars">
<option value="Administrator">Administrator
<option value="saab">Saab
<option value="fiat">Fiat
<option value="audi">Audi
</select>
<br>
<b>To :</b>�����������<input type="text" name="to" size="72"><br>
<b>From :</b>�������<input type="text" name="from" size="72"><br>
<b>Subject :</b>���<input type="text" name="subject" size="72"><br>
<%=Attachfiles1%><br><%=Attachfiles2%><br><%=Attachfiles3%><br><br>
<b>Message:</b><br>
������������<textarea rows="10" cols="50" name="message">
</textarea> <br><br>
<b>AttachedFile:</b>�<input type="file" name="fieldname1" value="filename" size="50"><br><br>
<b>AttachedFile:</b>�<input type="file" name="fieldname2" value="filename" size="50"><br><br>
<b>AttachedFile:</b>�<input type="file" name="fieldname3" value="filename" size="50"><br><br>
������������<input type="submit" name="attachfiles" value="Attachfiles">
<center>
<input type="submit" name="send" value="Send" >
</center>
</form>
</div>
</body>
</html>Most likely you're not specifying the path of a file on the server machine.
-
How to send multiple attachments at runtime?
Please help
The JavaMail FAQ talks about sending attachments and the
demo programs that come with JavaMail illustrate how to do it.
Sending more than one attachment is an obvious generalization
of the examples.
What part are you confused about? -
How to send multiple attachments when the number of attachment is known at
I am creating an independent E-mail component for an n tire architecture. This component gets the email message and files_to_Attach as method parameters.
Files to attach is inside an array list.
So the number of files for attachment is known only at run time.
How can I attach this files.
If I use single instance of MimeBodyPart (ib side a Four or While loop), it attaches the last file several times.
Please advise me on thishi
some related links
http://forum.java.sun.com/thread.jspa?threadID=684327&messageID=4429819
http://www.jscape.com/articles/sending_email_attachments_using_java.html
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=45&t=003546
http://www.dbforums.com/showthread.php?t=1059049
http://www.experts-exchange.com/Programming/Programming_Platforms/Unix_Programming/Q_21072849.html -
How to handle Multiple attachments in sender Mail Adapter
Hi,
In our requirement is mutiple documents send through mail adapter, In custom java module we read the each document details and do it bussiness process. But now i am not able to read the multiple files at a time. we are able to read single file only. So plz give the solution for that.
1) How to send multiple attachments(like word, PDF, JPG etc..) using mail apapter.
2) How to read multiple attachments in custom java module.
Thanks & Regards
VijayHi Vijay,
Go through this weblog this explains steps to multile attachments.
/people/sravya.talanki2/blog/2006/01/12/xi-triggering-e-mails-with-multiple-attachments--problems
Regards,
Ashwin. -
How to send multiple attachements in single mail
Hi All,
Currently i am using this function module SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail with only one attachment.
But now i need to send multiple attachments to a single mail.
Can any one please tell me as how to send multiple attachments in single mail.
Thanks in advance.Hi
See this and do accordingly
Mailing with Attachment by ABAP Coding
Refer this link:
Mail with attachment.
FORM send_list_to_basis .
DATA: w_path LIKE rlgrap OCCURS 0 WITH HEADER LINE,
lt_index TYPE sy-tabix,
doc_type(3) TYPE c,
descr LIKE it_objpack_basis-obj_descr,
temp_data LIKE w_path,
temp1 TYPE string,
tab_lines TYPE i,
langu(15) TYPE c,
expirydate TYPE so_obj_edt,
L_FILE1(100).
CONCATENATE 'C:\' sy-repid '_' sy-datum '.XLS' INTO L_FILE1.
W_PATH-FILENAME = L_FILE1.
APPEND w_path.
CLEAR w_path.
wa_doc_chng-obj_descr = 'User List not logged on for 180 days'.
wa_doc_chng-obj_langu = 'E'.
wa_doc_chng-obj_expdat = sy-datum.
CLEAR w_subject.
CONCATENATE 'Please find attached document with list of users'
'not logged on for 180 days for client' sy-mandt
INTO w_subject SEPARATED BY space.
it_objtxt_basis-line = w_subject.
APPEND it_objtxt_basis.
CLEAR it_objtxt_basis.
it_objtxt_basis-line = text-004.
APPEND it_objtxt_basis.
CLEAR it_objtxt_basis.
CLEAR w_tab_line.
DESCRIBE TABLE it_objtxt_basis LINES w_tab_line.
READ TABLE it_objtxt_basis INDEX w_tab_line INTO l_cline.
wa_doc_chng-doc_size =
( w_tab_line - 1 ) * 255 + STRLEN( l_cline ).
CLEAR it_objpack_basis-transf_bin.
it_objpack_basis-head_start = 1.
it_objpack_basis-head_num = 0.
it_objpack_basis-body_start = 1.
it_objpack_basis-body_num = w_tab_line.
it_objpack_basis-doc_type = 'RAW'.
APPEND it_objpack_basis.
CLEAR it_objpack_basis.
LOOP AT w_path.
temp1 = w_path.
descr = w_path.
CALL FUNCTION 'STRING_REVERSE'
EXPORTING
string = descr
lang = 'E'
IMPORTING
rstring = descr.
CALL FUNCTION 'STRING_SPLIT'
EXPORTING
delimiter = '\'
string = descr
IMPORTING
head = descr
tail = temp_data.
CALL FUNCTION 'STRING_REVERSE'
EXPORTING
string = descr
lang = 'E'
IMPORTING
rstring = descr.
CALL FUNCTION 'STRING_SPLIT'
EXPORTING
delimiter = '.'
string = descr
IMPORTING
head = temp_data
tail = doc_type.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = temp1
filetype = 'BIN'
header_length = 0
read_by_line = 'X'
replacement = '#'
TABLES
data_tab = it_upload.
DESCRIBE TABLE it_upload LINES tab_lines.
DESCRIBE TABLE it_objbin_basis LINES lt_index.
lt_index = lt_index + 1.
LOOP AT it_upload.
wa_objbin_basis-line = it_upload-line.
APPEND wa_objbin_basis TO it_objbin_basis.
CLEAR wa_objbin_basis.
ENDLOOP.
it_objpack_basis-transf_bin = 'X'.
it_objpack_basis-head_start = 0.
it_objpack_basis-head_num = 0.
it_objpack_basis-body_start = lt_index.
it_objpack_basis-body_num = tab_lines.
it_objpack_basis-doc_type = doc_type.
it_objpack_basis-obj_descr = descr.
it_objpack_basis-doc_size = tab_lines * 255.
APPEND it_objpack_basis.
CLEAR it_objpack_basis.
ENDLOOP.
it_reclist_basis-receiver = '[email protected]'.
it_reclist_basis-rec_type = 'U'.
APPEND it_reclist_basis.
CLEAR it_reclist_basis.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = wa_doc_chng
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = it_objpack_basis
contents_txt = it_objtxt_basis
contents_bin = it_objbin_basis
receivers = it_reclist_basis
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
IF sy-subrc EQ 0.
SUBMIT rsconn01 WITH mode = 'INT' AND RETURN.
ENDIF.
ENDFORM. " send_list_to_basis
<b>Reward points for useful Answers</b>
Regards
Anji -
How to send multiple attachment s with a mail??
Hi,
How to send multiple attachments with a mail??
Situation::
In my case i have 5 internal tables populated dynamically in the report.
I want to send them in .TXT format as attachment with 1 mail.
Can anybody tell me in 'SO_NEW_DOCUMENT_ATT_SEND_API1',
how we add multiple attachmants to table objin???
thanks,
deepakHi Deepak,
Please find the sample code for sending mail with multiple attachment.
Report ZPAN_02M *
REPORT zpan_02m .
*-MAIN DECLARATION----
DATA: docdata LIKE sodocchgi1,
objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,
objhex LIKE solix OCCURS 10 WITH HEADER LINE,
reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.
*-OTHER DECLARATIONS----
DATA : listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.
DATA : tab_lines(3) TYPE n.
DATA : att_type LIKE soodk-objtp.
*OBJBIN = ' | '. APPEND OBJBIN.
*---For simple attachment -
DATA : BEGIN OF wi_data OCCURS 0,
c1(10),
c2(10),
END OF wi_data.
wi_data-c1 = 'Line 1'. wi_data-c2 = 'Line 1'. APPEND wi_data.
wi_data-c1 = 'Line 2'. wi_data-c2 = 'Line 2'. APPEND wi_data.
wi_data-c1 = 'Line 3'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 4'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 5'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 6'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 7'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 8'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 9'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 10'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 11'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 12'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 13'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 14'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 15'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 16'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 17'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 18'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 19'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 20'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 21'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 22'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 23'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 24'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 25'. wi_data-c2 = 'Line 3'. APPEND wi_data.
wi_data-c1 = 'Line 26'. wi_data-c2 = 'Line 3'. APPEND wi_data.
class cl_abap_char_utilities definition load.
constants:
con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
con_cret type c value cl_abap_char_utilities=>CR_LF,
con_nwln type c value cl_abap_char_utilities=>NEWLINE.
LOOP AT wi_data.
CONCATENATE wi_data-c1 con_tab
wi_data-c2
INTO objbin.
condense objbin.
CONCATENATE con_cret objbin INTO objbin.
APPEND objbin.
ENDLOOP.
*---CREATE MESSAGE : DOCDATA -
Name
docdata-obj_name = 'TEST_ALI'.
Subject
docdata-obj_descr = 'Test including ALI/HTML Attachment'.
*---CREATE MESSAGE : BODY -
objtxt = 'Test Document.'.
APPEND objtxt.
objtxt = 'You will find an ALI/HTML attachment in this message.'.
APPEND objtxt.
objtxt = 'Have a nice day.'.
APPEND objtxt.
*-CREATE PACKING LIST-----TEXT--
objpack-head_start = 1.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.
*-CREATE PACKING LIST-----ATTACHMENT--
att_type = 'XLS'.
DESCRIBE TABLE objbin LINES tab_lines.
READ TABLE objbin INDEX tab_lines.
objpack-doc_size = ( ( tab_lines / 2 ) - 1 ) * 255 + STRLEN( objbin ).
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines / 2.
objpack-doc_type = att_type.
objpack-obj_name = 'ATTACHMENT 1'.
objpack-obj_descr = 'Attached Document 1'.
APPEND objpack.
att_type = 'XLS'.
objpack-doc_size = ( ( tab_lines / 2 ) - 1 ) * 255 + STRLEN( objbin ).
objpack-transf_bin = 'X'.
objpack-head_start = 14.
objpack-head_num = 14.
objpack-body_start = 14.
objpack-body_num = tab_lines / 2.
objpack-doc_type = att_type.
objpack-obj_name = 'ATTACHMENT 2'.
objpack-obj_descr = 'Attached Document 2'.
APPEND objpack.
*-CREATE RECEIVER LIST----
reclist-receiver = '[email protected]'. reclist-rec_type = 'U'.
APPEND reclist.
reclist-receiver = sy-uname. reclist-rec_type = 'B'.
APPEND reclist.
*-SEND MESSAGE----
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = docdata
put_in_outbox = 'X'
commit_work = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
CONTENTS_HEX = objhex
OBJECT_PARA =
OBJECT_PARB =
receivers = reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
Hope this is enough for you...
Enjoy SAP.
Pankaj Singh. -
How can we send multiple attachments in a mail from iPad 2
Hi,
I am using a ipad2. I want to know how we can send multiple attachments through mail from iPad. I did not find any option of doing this. Is there a way to do this.
Regards,
SatyabratYou can't do it natively on the iPad (unless you just want to send up to 5 photos from the Photos app). I use the GoodReader app which supports quite a few document/file types (e.g. PDF, Excel, Word, pictures), and from that I can select multiple files (including different types) and attach them to the same email.
-
How can I send multiple attachments using SO_DYNP_OBJECT_SEND?
Hi,
I hope someone can offer advice on my problem.
My requirement is to allow users to select one or more documents from an ALV grid. I am then required to send these documents to multiple users via email using function module SO_DYNP_OBJECT_SEND.
I can successfully send one document as an attachment. However, I can't seem to figure out how to send multiple documents as attachments using SO_DYNP_OBJECT_SEND. Is this done in the packing list?
Is there some way to tell the program where the 1st attachment ends and the 2nd attachment starts?
My attachment content is in i_att_cont.
CALL FUNCTION 'SO_DYNP_OBJECT_SEND'
EXPORTING
object_hd_change = l_title
object_type = 'RAW'
raw_editor = abap_true
starting_at_x = '5'
starting_at_y = '1'
ending_at_x = '120'
ending_at_y = '20'
edit_title = 'X'
external_commit = abap_true
TABLES
objcont = i_objcont
rec_tab = i_rec_tab
packing_list = i_packing_list
att_cont = i_att_cont
exclude_fcode = i_exclude_fcode
EXCEPTIONS
object_not_sent = 1
owner_not_exist = 2
parameter_error = 3
OTHERS = 4.
If you require more information, please let me know. I will be happy to provide it.
Thanks.I finally found the solution.
The trick is to ensure you put the correct values in the body_start, body_num and objlen fields of the packing list.
Each additional attachment should start (body_start) at the end of the last attachment + 1.
The value for body_num is equal to the number of lines in the attachment being added.
And the objlen field is calculated by multiplying the number of lines in the attachent * 255.
Static data
gs_packing_list-file_ext = lv_ext.
gs_packing_list-transf_bin = 'X'.
gs_packing_list-objla = sy-langu.
gs_packing_list-objtp = 'EXT'.
gs_packing_list-objdes = lv_filename.
gs_packing_list-objnam = 'Attachment'.
gs_packing_list-head_start = 1.
gs_packing_list-head_num = 1.
Body Start
CLEAR lv_count.
DESCRIBE TABLE gt_temp_att_cont LINES lv_count.
gs_packing_list-body_start = lv_count + 1.
Body Num + Object Length
CLEAR lv_count.
DESCRIBE TABLE gt_att_cont LINES lv_count.
gs_packing_list-body_num = lv_count.
gs_packing_list-objlen = lv_count * 255.
APPEND gs_packing_list TO gt_packing_list.
Hopefully this helps some desperate soul in the future. -
How do I send multiple attachments in word format when the document is created in pages
How do I send multiple attachments in word format on one em. The documents are in pages/numbers and if I use 'share' they each go into a separate e mail
Your welcome.
New problem. Just purchased Docs Go Pro for iPad word processor and there are buttons missing. Then when I go back to the App Store I clicked on app support and up comes server/webpage gone (basically). I Binged and there is not a direct site for support. How or who can be a help? -
How to accept multiple attachments on selection screen?
Hi All,
I need to know how to accept multiple attachments on selection screen and send them as email to external system (outlook).
Basically, my req is to send a common email with attachments to certain users. These users are displayed in ALV. User will select ALL or specific user from ALV and send an email with message entered on selection screen.
I used text editor control to input message body. I need to know how to accept attachments and send them.
Appreciate any inputs.
Thanks,
SKJSAP uses a nifty little button called 'Object Services' on ME23N (top left) which you can use to attach documents to business objects.
http://help.sap.com/saphelp_nw70/helpdata/EN/be/3fe63659241157e10000009b38f889/frameset.htm
It's a complicated way of doing it but might give you extra functionality in the long run. -
How to send three attachments using three queries in a single email using sp_senddbmail
Hi All,
I have three scripts for extracting permissions at server,database & object level.Now how do i can execute all three queries and send multiple attachments in a single email using sp_senddbmail.I have done this before for single queries but not multiple
queries. Kindly suggest.
Regards
RahulHi All,
The requirement was that i had three different queries for listing permissions at server,database and object level.I wanted to build an solution to email results in attachment to user.
However i have managed to do this with SSIS Package.I was curious to know if it can be done without SSIS.
Thanks you all for your time and effort for this.
Rahul
It can be done without SSIS
Just have a procedure to return three query results as a single resultset. Then use sp_send_dbmail to execute query and send results as a email
See
http://blogs.msdn.com/b/sqlagent/archive/2010/11/03/sql-database-mail-send-t-sql-results-by-email.aspx
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
I'm not being lazy, I have looked through many of the threads and don't seems to be able to find the answer to this query, if anyone can offer any assistance I'd be very grateful.
I want to send email with multiple attachments and I'm taking advantages of the demo_mail functionality already in place. I can successfully send email with and attachment by passing in the file name from the wwv.flows table after I've uploaded the file. The problem is that I'm not sure how to pass multiple attachments. I imagine I would either be passing multiple file names or combining the blobs?
Code as follows:
procedure email_attachments_asis(
p_sender varchar2, -- sender, example: 'Me '
p_recipients varchar2, -- recipients, example: 'Someone '
p_subject varchar2, -- subject
p_body varchar2, -- body
p_filename varchar2, -- name of pdf file
p_blob blob, -- file(s)
p_mime_type varchar2,
p_number_to_attach number) is
conn utl_smtp.connection;
i number;
len number;
v_eol VARCHAR2(2) := chr(13)||chr(10);
BEGIN
conn := demo_mail.begin_mail(
sender => p_sender,
recipients => p_recipients,
subject => p_subject,
mime_type => demo_mail.MULTIPART_MIME_TYPE);
if p_number_to_attach > 1 then
demo_mail.attach_text(
conn => conn,
data => p_body,
mime_type => p_mime_type);
elsif p_number_to_attach = 1 then
demo_mail.attach_text(
conn => conn,
data => p_body,
mime_type => p_mime_type);
end if;
for counter in 1..p_number_to_attach loop
demo_mail.begin_attachment(
conn => conn,
mime_type => p_mime_type,
inline => TRUE,
filename => p_filename,
transfer_enc => 'base64');
-- split the Base64 encoded attachment into multiple lines
i := 1;
len := DBMS_LOB.getLength(p_blob);
WHILE (i < len) LOOP
IF(i + demo_mail.MAX_BASE64_LINE_WIDTH < len)THEN
UTL_SMTP.Write_Raw_Data (conn
, UTL_ENCODE.Base64_Encode(
DBMS_LOB.Substr(p_blob, demo_mail.MAX_BASE64_LINE_WIDTH, i)));
ELSE
UTL_SMTP.Write_Raw_Data (conn
, UTL_ENCODE.Base64_Encode(
DBMS_LOB.Substr(p_blob, (len - i)+1, i)));
END IF;
UTL_SMTP.Write_Data(conn, UTL_TCP.CRLF);
i := i + demo_mail.MAX_BASE64_LINE_WIDTH;
END LOOP;
end loop;
demo_mail.end_attachment(conn => conn);
demo_mail.end_mail( conn => conn );
END email_attachments_asis;The method I would use is:
1) Write a utility function that accepts a SQL cursor, converts it to XML and applies a XSL stylesheet to convert it to an HTML table and return the result as a CLOB. An example that I based code on is here. My modified example that accepts the stylesheet is at the end.
2) For each report, run the function and attach it to the email.
FUNCTION FNCREFCURSOR2XML
( p_refCursor SYS_REFCURSOR,
p_stlsht CLOB,
p_parms VARCHAR2 default null)
RETURN CLOB
IS
lRetVal CLOB;
lHTMLOutput XMLType;
lXMLData XMLType;
lContext DBMS_XMLGEN.CTXHANDLE;
stringarg varchar2(200);
BEGIN
-- get a handle on the ref cursor --
lContext := DBMS_XMLGEN.NEWCONTEXT(p_refCursor);
-- setNullHandling to 1 (or 2) to allow null columns to be displayed --
DBMS_XMLGEN.setNullHandling(lContext,1);
-- create XML from ref cursor --
lXMLData := DBMS_XMLGEN.GETXMLTYPE(lContext,DBMS_XMLGEN.NONE);
if lXMLData is null then
DBMS_XMLGEN.CLOSECONTEXT(lContext);
close p_refCursor;
return null;
end if;
DBMS_OUTPUT.PUT_LINE('xmldata = ' || lXMLData.getStringVal());
-- XSL transformation to convert XML to HTML --
--stringarg:=regexp_replace(p_parms,'"([[:alnum:][:space:]]*)"','"string(' || '''' || '\1' || '''' || ')"',1,0,'m');
lHTMLOutput := lXMLData.transform(XMLType(p_stlsht),p_parms);
-- convert XMLType to Clob --
lRetVal := dbms_xmlgen.convert(lHTMLOutput.getClobVal(),DBMS_XMLGEN.ENTITY_DECODE );
--lRetVal := lHTMLOutput.getClobVal();
lRetVal := regexp_replace(lRetVal,'_x0020_',' ',1,0,'m');
lRetVal := regexp_replace(lRetVal,'_x0026_','&',1,0,'m');
lRetVal := regexp_replace(lRetVal,'_x003C_','<',1,0,'m');
lRetVal := regexp_replace(lRetVal,'_x002F_','/',1,0,'m');
lRetVal := regexp_replace(lRetVal,'_x003E_','>',1,0,'m');
lRetVal := regexp_replace(lRetVal,'>','>',1,0,'m');
lRetVal := regexp_replace(lRetVal,'<','<',1,0,'m');
lRetVal := regexp_replace(lRetVal,'"','"',1,0,'m');
lRetVal := regexp_replace(lRetVal,'&','&',1,0,'m');
--lRetVal := lHTMLOutput.getStringVal();
DBMS_XMLGEN.CLOSECONTEXT(lContext);
CLOSE p_refCursor;
RETURN lRetVal;
end fncRefCursor2XML;-----
Example Stylesheet:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:param name="title"/>
<xsl:param name="widthpx" />
<xsl:param name="widthpct" />
<xsl:template match="/">
<div style="width:100%">
<table border="1px" class="t16standard" style="border-collapse:collapse">
<xsl:if test="string-length($widthpx) > 0">
<xsl:attribute name="width">
<xsl:value-of select="$widthpx"/>px
</xsl:attribute>
</xsl:if>
<xsl:if test="string-length($widthpct) > 0">
<xsl:attribute name="width">
<xsl:value-of select="$widthpct"/>%
</xsl:attribute>
</xsl:if>
<xsl:if test='string-length($title) > 0 '>
<tr>
<th style="font-size:14px;background:#9DB8D2">
<xsl:attribute name="colspan">
<xsl:value-of select="count(/ROWSET/ROW[1]/*)"/>
</xsl:attribute>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:value-of select="translate($title,'_',' ')"/>
</th>
</tr>
</xsl:if>
<tr>
<xsl:for-each select="/ROWSET/ROW[1]/*">
<th class="t16ReportHeader"><xsl:value-of select="name()"/></th>
</xsl:for-each>
</tr>
<xsl:for-each select="/ROWSET/*">
<tr>
<xsl:for-each select="./*">
<td>
<xsl:choose>
<xsl:when test="string(@bgcolor)">
<xsl:attribute name="bgcolor">
<xsl:value-of select="@bgcolor" />
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="string(@style)">
<xsl:attribute name="style">
<xsl:value-of select="@style" />
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style">
padding:3px
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="text()"/> </td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
</xsl:stylesheet>Edited by: Fairfax_Al on Apr 15, 2009 4:17 PM -
How to Send Multiple Plot XY Graph from LabVIEW to Microsoft Excel
The link below describes exactly what I would like to do, however the link to the solution/work around does not work.
Has anyone got an alternative solution?
http://digital.ni.com/public.nsf/allkb/CFD30D5E9C01AB5386256CFB0082AF3EPlease check the link again as it seems to be working fine now.
How to Send Multiple Plot XY Graphs from LabVIEW to Microsoft Excel:
http://digital.ni.com/public.nsf/allkb/CFD30D5E9C01AB5386256CFB0082AF3E
The standard Excel Insert Graph.vi cannot insert multiple XY Graphs to Microsoft Excel, so you will need to use the Report Generation Toolkit for Microsoft Office. You will find a link to an example program at the bottom of the page. I have also attached it below.
Attachments:
example.zip 35 KB
Maybe you are looking for
-
Dunning form print program and process
Hi Experts... Pls. can one help me in finding the dunning form(script) F150_BE_DUNN_02 print program. And also pls. can any one explain me about hw i need to modify the dunning form for different level. my que. is do i need to modify fo
-
Drag and Drop and save changes
I am attempting to make an application that gives users a vast selection of icons that they can drag and drop into their own area which act as links to sites once they are double clicked but when they are clicked a single time they bring up a panel w
-
Messages app no longer works; plists or chat.db are missing
The reason this happened is that well... I sent a really really really long message and it crashed my messages app. So I figured I would try to delete the chat.db file in /Library/Messages but... there was no file there. Then I checked for the plist
-
If I use more than 1 skype name and password, do I...
I have several skype names, and if I want to use more than 1, do I need to have a separate account for each name, or do the minutes purchased apply to my email address, not to the skype name?
-
Corrupted RAW photos in iPhoto 9.6 (Yosemite) from Canon 60D
Early 2008 iMac, 4GB RAM, Yosemite 10.10.1, iPhoto 9.56 (910.29), Canon 60D. Downloaded images/thumbnails from camera via cable, card reader or backup hard drive are partially to fully blacked out in iPhoto. This does not happen with cable down load