Sending a PDF document as a file attachment
Hi,
I have encountered the following problem:
When attaching a pdf document to an email and sending it via Javamail, the resulting PDF document on the other end (i.e. when opened via an email client, such as Outlook) is corrupted and cannot be opened in Acrobar Reader. When doing a side by side comparison with the original file, the emailed document is 1 byte larger than the original (which can possibly cause the "corrupted file error").
Now, this is happening in my company's application and is happening to only one of our customers. This does not happen to 99.9% of them nor can we duplicate it. In addition, it does not happen to all PDF documents, only a few of them.
I have also ensured that our client has the latest version of Javamail and the activation framework jar files.
One thing I have noticed is that the documents are "encoded" as 7bit. This makes sense since the Javadocs explain that if a file is "US-ASCII only" it will be encoded as 7bit, otherwise it will be encoded as base64. Many of our PDF documents are text only.
My side question is, is there a way to force it to encode it as base64 for all pdf documents and would this help?
My main question is: Does anyone know what is happening and what I can do about it?
Anyway, here is the code fragment that does the attachment:
for (int i = 0; i < attachments.length; i++)
messageBodyPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(attachments);
messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
String fileName = attachments[i].getName();
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
Where attachments is a File array.
Only one of your customers. And they can only handle base-64 encoding and not 7-bit encoding of mail messages.
We had the same thing. We send thousands of files every week using JavaMail, most of them PDFs and other files that are all text. Just one of our customers had some cruddy mail handler they had written themselves, or something like that, and it only liked base-64 encoded messages. This was fine for them because MS Outlook automatically does that for attachments regardless, and everybody was using Outlook to send them files. Except us. So we had to set up a hokey scheme where we would send their messages to a local MS Exchange address and have them auto-forwarded to the customer's address. (I couldn't find any way to control base-64 versus 7-bit encoding.)
But that customer wasn't using Outlook to read the messages, so maybe that isn't the problem. We also had a supplier (fortunately an ex-supplier now) who we used to send zip files to (from Outlook even) and their mail server would insert extra line breaks into the attachment, thus making the zip file corrupted. Maybe something like that is happening.
We had another customer who used Lotus Notes as their mail server, and it couldn't deal with our plain ordinary PDFs either. But I think Notes must have had some bug fixes because I haven't heard about that problem lately.
Good luck.
Similar Messages
-
I'm trying to send a pages document as an email attachment to pc users. They can't access the document. When I try go to the "file" menu, there is no "save as" option.
Hi Shelly,
Command-P (Print)
In the Print dialogue, click the PDF button at lower left, choose Mail PDF
The result should be a new email document with the pdf file attached.
Address and send.
The procedure applies to any document which may be printed, not just Pages documents.
Regards,
Barry -
How do I get a PDF document put into an attachment form that I can drag to an e-mail. Usually I get an icon showing an spiral note book which then becomes an attachment when I drag it to the e-mail, but occasionally it stays in PDF and prints out on the e-mail. What have I done differently?
Thanks again for the detailed instructions Srini!
And I really hate to be a pest . . . but . . .
Using your example and not modifying it, I get the e-mail form filled out correctly and the pdf attached, however, I'm not prompted to sign it.
Any more clues? -
How to send a PDF document to a FAX Server in SAP ? - Urgent
Dear All
Can you please provide inputs as to how one can send a PDF document to a FAX server . In my SCOT i have config done for FAX . I am able to send PDF document via e-mail . Wonder how to use FM 'CONVERT_OTF_AND_FAX' for sending fax ? There is a parameter called FAXOPTIONS in export parameter which we need to pass . What all we need to pass in here ? any idea or some other way here?
Best Regards
Shovitcheck this sample program
BCS_EXAMPLE_2
Regards
Raja -
Acrobat 9: Error when PDF form submit with file attachment
Hi all,
Hope you can provide some help with my PDF form submit issue. I am getting this error "There is no PDDoc associated with this CosDoc." in Acrobat 9 (Reader and Pro) when I try to submit a PDF form with a file attachment field (the file is specified). The same PDF form works fine in Acrobat 7 or 8 (Reader and Pro) with file attachment.
If no file attachment is specified (user did not select a file) then the PDF form submits fine in acrobat 9. The form data submission format is in FDF. Same problem if I change to XFDF.
There are no differences in the problem if the PDF form is created in Acrobat 7 or Acrobat 9, the same submit issue exists in Acrobat 9 but not in the older Acrobat versions.
Is this a known issue and are there any workarounds/solutions?
Thanks.Sounds like a bug to me. Please report it: http://www.adobe.com/support/feature.html
George -
Mail Adapter: How to send data as a simple text file attachment?
Hi All
I have a proxy to file scenario, where i write data to a text file.
Now, i need to have a second receiver. I have to send an email, with the above file as an attachment, to this receiver.
How can i do this?
How can i send the data as a text file attachment to the receiver?
Many Thanks
ChandraHi,
To send the message to the second receiver you need to have:
1) Necessary mail message format (can download from service marketplace)
2) Receiver mail communication channel.
3) Create the necessary Configuration Objects .... Receiver Determination, Interface Determination, Receiver Agreement.
3) You can do a XSLT mapping (if required)....if no complex logic is needed then you can do a simple Message mapping.
4) In the receiver CC make sure that you check the Adapter Specific Message Attribute checkbox.
For more info you can refer my answer in this thread:
Re: xml in mail
Also refer the blog:
/people/michal.krawczyk2/blog/2005/11/23/xi-html-e-mails-from-the-receiver-mail-adapter
Regards,
Abhishek. -
when I send an email with a photoshop file attached, the recipient receives it "flattened". How do I change this?
I've sent psd files to various people without issues, however you might want to try something like www.filedropper.com to make sure it's not that they can't open your version of psd file.
You may also want to zip the file using the built in archiving software, simply right click (or control click) the file and choose Compress ...., then you can email it to the person as a compressed archive. That should preserve all the aspects of the file properly without any modifications. -
Can any one please send the pdf document TEP12
Hi Portal experts,
Can any one please send the pdf document TEP12?
Thanks,
Jitender>
jitender d wrote:
> Hi Portal experts,
> Can any one please send the pdf document TEP12?
>
> Thanks,
> Jitender
You are not allowed to ask for any Document like this
Reported......
Faisal -
Sending a PDF document as an attachment
Hi,
I have a PDF document which I need to send as an attachment.
The process behind this is, as soon as a Sales Order is created, a PDF document( this is a static one) needs to be sent to the Customer.
Anyone has idea of how this can be achieved.
Thanks,
PrasannaPlease see this post. You can find more links in this.
Send PDF by email
Also find some examples here
Sending PDF to SAP Outbox - Urgent
You can find a weblog from Thomas Jung explaining the step by step configuration for sending mail from ABAP.
/people/thomas.jung3/blog/2004/09/07/sending-e-mail-from-abap--version-46d-and-lower--api-interface
Message was edited by: Vinod C -
Sending a PDF document to printer directly
Hi,
can any one help me in printing a PDF file stored in the system to be sent to printer from abap code.
thanks in advance.hi here is the program to print the pdf document directly..
REPORT zspooltopdf.
PARAMETER: p_email1 LIKE somlreci1-receiver,
p_sender LIKE somlreci1-receiver,
p_delspl AS CHECKBOX.
*DATA DECLARATION
DATA: gd_recsize TYPE i.
Spool IDs
TYPES: BEGIN OF t_tbtcp.
INCLUDE STRUCTURE tbtcp.
TYPES: END OF t_tbtcp.
DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
wa_tbtcp TYPE t_tbtcp.
Job Runtime Parameters
DATA: gd_eventid LIKE tbtcm-eventid,
gd_eventparm LIKE tbtcm-eventparm,
gd_external_program_active LIKE tbtcm-xpgactive,
gd_jobcount LIKE tbtcm-jobcount,
gd_jobname LIKE tbtcm-jobname,
gd_stepcount LIKE tbtcm-stepcount,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
DATA: w_recsize TYPE i.
DATA: gd_subject LIKE sodocchgi1-obj_descr,
it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
gd_sender_type LIKE soextreci1-adr_typ,
gd_attachment_desc TYPE so_obj_nam,
gd_attachment_name TYPE so_obj_des.
Spool to PDF conversions
DATA: gd_spool_nr LIKE tsp01-rqident,
gd_destination LIKE rlgrap-filename,
gd_bytecount LIKE tst01-dsize,
gd_buffer TYPE string.
Binary store for PDF
DATA: BEGIN OF it_pdf_output OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF it_pdf_output.
CONSTANTS: c_dev LIKE sy-sysid VALUE 'DEV',
c_no(1) TYPE c VALUE ' ',
c_device(4) TYPE c VALUE 'LOCL'.
*START-OF-SELECTION.
START-OF-SELECTION.
Write statement to represent report output. Spool request is created
if write statement is executed in background. This could also be an
ALV grid which would be converted to PDF without any extra effort
WRITE 'Hello World'.
new-page.
commit work.
new-page print off.
IF sy-batch EQ 'X'.
PERFORM get_job_details.
PERFORM obtain_spool_id.
Alternative way could be to submit another program and store spool
id into memory, will be stored in sy-spono.
*submit ZSPOOLTOPDF2
to sap-spool
spool parameters %_print
archive parameters %_print
without spool dynpro
and return.
Get spool id from program called above
IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
PERFORM convert_spool_to_pdf.
PERFORM process_email.
if p_delspl EQ 'X'.
PERFORM delete_spool.
endif.
IF sy-sysid = c_dev.
wait up to 5 seconds.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
ELSE.
SKIP.
WRITE:/ 'Program must be executed in background in-order for spool',
'request to be created.'.
ENDIF.
FORM obtain_spool_id *
FORM obtain_spool_id.
CHECK NOT ( gd_jobname IS INITIAL ).
CHECK NOT ( gd_jobcount IS INITIAL ).
SELECT * FROM tbtcp
INTO TABLE it_tbtcp
WHERE jobname = gd_jobname
AND jobcount = gd_jobcount
AND stepcount = gd_stepcount
AND listident <> '0000000000'
ORDER BY jobname
jobcount
stepcount.
READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
IF sy-subrc = 0.
message s004(zdd) with gd_spool_nr.
gd_spool_nr = wa_tbtcp-listident.
MESSAGE s004(zdd) WITH gd_spool_nr.
ELSE.
MESSAGE s005(zdd).
ENDIF.
ENDFORM.
FORM get_job_details *
FORM get_job_details.
Get current job details
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
eventid = gd_eventid
eventparm = gd_eventparm
external_program_active = gd_external_program_active
jobcount = gd_jobcount
jobname = gd_jobname
stepcount = gd_stepcount
EXCEPTIONS
no_runtime_info = 1
OTHERS = 2.
ENDFORM.
FORM convert_spool_to_pdf *
FORM convert_spool_to_pdf.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gd_spool_nr
no_dialog = c_no
dst_device = c_device
IMPORTING
pdf_bytecount = gd_bytecount
TABLES
pdf = it_pdf_output
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
CHECK sy-subrc = 0.
Transfer the 132-long strings to 255-long strings
LOOP AT it_pdf_output.
TRANSLATE it_pdf_output USING ' ~'.
CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
ENDLOOP.
TRANSLATE gd_buffer USING '~ '.
DO.
it_mess_att = gd_buffer.
APPEND it_mess_att.
SHIFT gd_buffer LEFT BY 255 PLACES.
IF gd_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDFORM.
FORM process_email *
FORM process_email.
DESCRIBE TABLE it_mess_att LINES gd_recsize.
CHECK gd_recsize > 0.
PERFORM send_email USING p_email1.
perform send_email using p_email2.
ENDFORM.
FORM send_email *
--> p_email *
FORM send_email USING p_email.
CHECK NOT ( p_email IS INITIAL ).
REFRESH it_mess_bod.
Default subject matter
gd_subject = 'Subject'.
gd_attachment_desc = 'Attachname'.
CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
it_mess_bod = 'Message Body text, line 1'.
APPEND it_mess_bod.
it_mess_bod = 'Message Body text, line 2...'.
APPEND it_mess_bod.
If no sender specified - default blank
IF p_sender EQ space.
gd_sender_type = space.
ELSE.
gd_sender_type = 'INT'.
ENDIF.
Send file by email as .xls speadsheet
PERFORM send_file_as_email_attachment
tables it_mess_bod
it_mess_att
using p_email
'Example .xls documnet attachment'
'PDF'
gd_attachment_name
gd_attachment_desc
p_sender
gd_sender_type
changing gd_error
gd_reciever.
ENDFORM.
FORM delete_spool *
FORM delete_spool.
DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
ld_spool_nr = gd_spool_nr.
CHECK p_delspl <> c_no.
CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
EXPORTING
spoolid = ld_spool_nr.
ENDFORM.
*& Form SEND_FILE_AS_EMAIL_ATTACHMENT
Send email
FORM send_file_as_email_attachment tables it_message
it_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
changing p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
data: t_packing_list like sopcklsti1 occurs 0 with header line,
t_contents like solisti1 occurs 0 with header line,
t_receivers like somlreci1 occurs 0 with header line,
t_attachment like solisti1 occurs 0 with header line,
t_object_header like solisti1 occurs 0 with header line,
w_cnt type i,
w_sent_all(1) type c,
w_doc_data like sodocchgi1.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = it_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
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.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM.
regards,
venkat -
Email sending with pdf document?
hi folks,iam using jdeveloper 11.1.2.3.0 my requirement as follows
Iam sending the mail with an attachment of pdf document..
i have two tables proforma invoice table(colums are ex:finalized date and chargepartycode) and chargepartymaster table(columns are ex:chargepartycode and email)..here when ever the proforma is finalized,i pick all the finalized records with respective chargepartycode,and pick email from chargepartymaster with respective chargepartycode ,now i need to send a mail for the respected email upto here fine.here is my requirement
single chargeparty has multiple invoice will so i need to generate single pdf for same chargepartycode and send it to the respected email ,here problem is generating the pdf for same chargeparty in one page and different chargeparties in different pages..howHi,
I think we need to split the question:
1. Create a PDF file and send a mail from ADF
Here ADF doesn't provide specific libraries and thus you want to Google for Java APIs to i) create PDF documents and ii) send a mail with attachment
2. Query invoices and associated details
This can easily be done in ADF by querying a View object for the invoice and then use its view link accessor to access detail rows. How to access a detail from a master row is explained in the Fusion Developer Guide on OTN
http://docs.oracle.com/cd/E37975_01/web.111240/e16182/toc.htm
Frank -
Is there any way to send a PDF file with the comments and highlights via email?
Yes, just press the share button, and then "E-mail Document."
It will send the document with all the comments and highlights. -
Send several pdf attachments has one file
I sent out an email today with 25 pdf files attached. The person who received it said she had to open each file to see it instead of the whole file being sent has one file. How do you do this?
Hi oz1234
if you have sent 25 different files, receiver will see 25 different files.
You can use acrobat and combine them into one single file and send that one file.
Please Refer : http://www.adobe.com/in/products/acrobat/merge-pdf-files.html -
Uploading and sending a PDF document from document management
Hello to all,
does anybody know a function module which is able to upload a pdf document stored within the document managemenent system of ERP and then send it via e-mail?
Thanks to all
JörgHi,
Getting PDF:CONVERT_OTF
mail:SSF_FUNCTION_MODULE_NAME
Regrds:
Prabu -
What is the best program for converting text PDF documents to audio files?
Hi all, I'm looking for a program (cost is not a factor, I'm looking for the highest functionality) that will convert PDF files (text, often scanned documents) to audio files, preferably ones that are able to have the recordings saved.
Podner is very good.
http://www.splasm.com/products/productpodner.html
12 PowerBook Mac OS X (10.4.2)
Maybe you are looking for
-
Audio Problems with connecting Macbook Pro to Tv
Hello, I connected my Macbook Pro to my 42 inch Vizio with a Mini DisplayPort Male to HDMI Male Cable with Audio Transmission. The picture is set to Mirror image and the picture is fine but I can not get any sound to tranfer from my Macbook to my Vi
-
Does the Mac Mini support a Flash Player?
-
My new 15" MacBook Pro running 10.6.8 will not allow me to choose my own Photo as Desktop. Any ideas, anyone? Thanks!
-
HT204370 Can't locate movie! D:
I bought a movie and I chose to download it later, and now that I'm ready to start downloading, I can't find it. Where do I go?
-
Anyone using final cut studio on 15" PB 1.67?
Want to upgrade from express but was wondering if my pb can handle studio or should i just get FCP.....I would like answers from users who have a 15"pb, please dont ask me to check the system requirements page because the only thing I know about my P