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 this
hi
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
Similar Messages
-
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?
Sorry if this seems like an obvious question but can it be done? Do I need an extra app or helper?
Thanks in advanceErnie,
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 -
How to send multiple Recipients using the mail.jar and activation.jar
hi!
could somebody help me. how do i send multiple Recipient using mail.jar. when i would input 2email address in to Recipient
(example: [email protected], [email protected])
i get a DEBUG: setDebug: JavaMail version 1.3.2
but if i send a single email it just works properly.
heres my code
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.event.*;
import javax.mail.internet.*;
public class SendMail
public SendMail(String to, String from, String subject, String body)
//public SendMail(String to)
String message_recip = to;
String message_subject = subject;
String message_cc = "";
String message_body = body;
//The JavaMail session object
Session session;
//The JavaMail message object
Message mesg;
// Pass info to the mail server as a Properties, since JavaMail (wisely) allows room for LOTS of properties...
Properties props = new Properties( );
// LAN must define the local SMTP server as "mailhost" to be able to send mail...
//props.put("mail.smtp.host","true");
props.put("mail.smtp.host", "mailhost");
// Create the Session object
session = Session.getDefaultInstance(props, null);
session.setDebug(true);
try
// create a message
mesg = new MimeMessage(session);
// From Address - this should come from a Properties...
mesg.setFrom(new InternetAddress(from));
// TO Address
InternetAddress toAddress = new InternetAddress(message_recip);
mesg.addRecipient(Message.RecipientType.TO, toAddress);
// CC Address
InternetAddress ccAddress = new InternetAddress(message_cc);
mesg.addRecipient(Message.RecipientType.CC, ccAddress);
// The Subject
mesg.setSubject(message_subject);
// Now the message body.
mesg.setText(message_body);
// XXX I18N: use setText(msgText.getText( ), charset)
// Finally, send the message!
Transport.send(mesg);
}//end of try
catch (MessagingException ex)
while ((ex = (MessagingException)ex.getNextException( )) != null)
ex.printStackTrace( );
}//end of while
}//end of catch
}//end of SendMail
public static void main(String[] args)
//String t = "[email protected], [email protected]"; - this I think causes error
String t = "[email protected]";
String f = "[email protected]";
String s = "Hello World";
String b = "the quick brown fox jumps over the lazy dog";
SendMail sm = new SendMail(t,f,s,b);
}//end of main
}//end of class
could someone please help me im stuck-up with this. thanx!i need it ASAP
i am a beginner in java and jsp
Need to knw how can I parse the addresss field
Below
is the code
<code>
package
public class EMailBean {
private String smtp,username,password,from,bcc,subject,body,attachments,cc;
/*setter*/
public void setSmtp(String str){this.smtp=str;}
public void setUsername(String str){this.username=str;}
public void setPassword(String str){this.password=str;}
public void setFrom(String str){this.from=str;}
public void setTo(String str){this.to=str;}
public void setCc(String str){this.cc=str;}
public void setBcc(String str){this.bcc=str;}
public void setSubject(String str){this.subject=str;}
public void setBody(String str){this.body=str;}
public void setAttachments(String str){this.attachments=str;}
/*getter*/
public String getSmtp( ){return this.smtp;}
public String getUsername( ){return this.username;}
public String getPassword( ){return this.password;}
public String getFrom( ){return this.from;}
public String getTo( ){return this.to;}
public String getCc( ){return this.cc;}
public String getBcc( ){return this.bcc;}
public String getSubject( ){return this.subject;}
public String getBody( ){return this.body;}
public String getAttachments( ){return this.attachments;}
</code>
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(mail.getFrom()));
msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
msg.addRecipient(Message.RecipientType.TO,new InternetAddress(mail.getTo()));
msg.addRecipient(Message.RecipientType.CC, new InternetAddress(mail.getCc()));
msg.addRecipient(Message.RecipientType.CC, new InternetAddress("[email protected]"));
msg.setSubject(mail.getSubject());
// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
messageBodyPart.setText(mail.getBody());
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(mail.getAttachments());
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(source.getName());
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
msg.setSentDate(new Date());
Transport t = session.getTransport("smtp");
try {
t.connect(mail.getUsername(), mail.getPassword());
t.sendMessage(msg, msg.getAllRecipients());
} finally {
t.close();
result = result + "<FONT SIZE='4' COLOR='blue'><B>Success!</B>"+"<FONT SIZE='4' COLOR='black'> "+"<HR><FONT color='green'><B>Mail was successfully sent to </B></FONT>: "+mail.getTo()+"<BR>";
if (!("".equals(mail.getCc())))
result = result +"<FONT color='green'><B>CCed To </B></FONT>: "+mail.getCc()+"<BR>";
if (!("".equals(mail.getBcc())))
result = result +"<FONT color='green'><B>BCCed To </B></FONT>: "+mail.getBcc() ;
result = result+"<BR><HR>";
} catch (MessagingException mex) {
result = result + "<FONT SIZE='4' COLOR='blue'> <B>Error : </B><BR><HR> "+"<FONT SIZE='3' COLOR='black'>"+mex.toString()+"<BR><HR>";
} catch (Exception e) {
result = result + "<FONT SIZE='4' COLOR='blue'> <B>Error : </B><BR><HR> "+"<FONT SIZE='3' COLOR='black'>"+e.toString()+"<BR><HR>";
e.printStackTrace();
finally {
return result;
} -
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 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 commands throught the Instrument I/O Assistant
I am using the Instrument I/O Assistant to set up an instrument driver. I am only using two rs 232 commands. The way I have the Instrument I/O Assistant setup is: first I have a default instrument setup step then I use a write step with the first command, then I read and parse, then I do a write command again with the second command and finally I read and parse again. All of this works fine inside the window but when I run it in my program only the first command's response it outputed . The second command's response is not outputted it just sends a null. Can the Instrument I/O Assistant only handle one read and write, or is my logic wrong?
Thanks for your help
IanHi Ian,
You should be able to perform multiple reads/writes with the Instrument IO Assistant. What termination character are you using? I have seen cases where different termination results in different parsing, which may explain why you're only receiving a null character on your second read. Thanks!
Regards,
Anna M.
National Instruments -
How to send a mail to the user with attachement
Hi Experts,
I have a requirement where user needs to get the automatic mail which has the updated information sheet as the attachement.
Kindly give me a clue on this.
if any body has model program for this...kidnly send it to [email protected]
Thanks in Advance,
AiswaryaHI
good
go throug this link
http://help.sap.com/saphelp_nw04s/helpdata/en/38/71f865c2c9a94ab1dce95792187c16/content.htm
/people/thomas.jung3/blog/2004/09/08/sending-e-mail-from-abap--version-610-and-higher--bcs-interface
go through this report=>
: Report ZSAPTALK :
: Author SAPdev.co.uk :
: Description : :
: Send mail message to SAP mail inbox. :
: Please visit www.sapdev.co.uk for further info :
REPORT ZSAPMAIL NO STANDARD PAGE HEADING.
TABLES: DRAD,
QINF,
DRAW,
SOUC,
SOFD,
DRAP.
DATA: P_RETURN_CODE LIKE SY-SUBRC.
data: d_username LIKE DRAP-PRNAM.
mail declarations
DATA : BEGIN OF NEW_OBJECT_ID. " the newly created email object
INCLUDE STRUCTURE SOODK.
DATA : END OF NEW_OBJECT_ID.
DATA : BEGIN OF FOLDER_ID. " the folder id of the outbox
INCLUDE STRUCTURE SOODK.
DATA : END OF FOLDER_ID.
DATA : BEGIN OF REC_TAB OCCURS 5. " the table which will contain the
INCLUDE STRUCTURE SOOS1. " information on the destination
DATA : END OF REC_TAB.
DATA : BEGIN OF OBJECT_HD_CHANGE. " the table which contains the
INCLUDE STRUCTURE SOOD1. " info for the object we will be
DATA : END OF OBJECT_HD_CHANGE. " creating
DATA : OBJECT_TYPE LIKE SOOD-OBJTP. " the type of object
DATA : BEGIN OF OBJHEAD OCCURS 5. " the header of the object
INCLUDE STRUCTURE SOLI.
DATA : END OF OBJHEAD.
DATA : BEGIN OF OBJCONT OCCURS 0. " the contents of the object
INCLUDE STRUCTURE SOLI. " i.e. the text etc
DATA : END OF OBJCONT.
DATA : BEGIN OF OBJPARA OCCURS 5. " formatting options
INCLUDE STRUCTURE SELC.
DATA : END OF OBJPARA.
DATA : BEGIN OF OBJPARB OCCURS 5. " formatting options
INCLUDE STRUCTURE SOOP1.
DATA : END OF OBJPARB.
DATA : BEGIN OF T_MAIL_TEXT OCCURS 0, "Message table for messages to
STRING(255), "user via mailbox
END OF T_MAIL_TEXT.
Parameter: p_uname like sy-uname.
**START-OF-SELECTION
START-OF-SELECTION.
d_username = p_uname.
PERFORM POPULATE_EMAIL_TEXT.
PERFORM SETUP_TRX_AND_RTX_MAILBOXES USING P_RETURN_CODE.
PERFORM CREATE_AND_SEND_MAIL_OBJECT.
FORM POPULATE_EMAIL_TEXT *
Inserts text for email message *
FORM POPULATE_EMAIL_TEXT.
CLEAR T_MAIL_TEXT-STRING. "puts a blank line in
APPEND T_MAIL_TEXT.
APPEND T_MAIL_TEXT.
adds failed list on to end of success list.
T_MAIL_TEXT-STRING = 'Test email message line 1'.
APPEND T_MAIL_TEXT.
T_MAIL_TEXT-STRING = 'Test email message line 1'.
APPEND T_MAIL_TEXT.
CLEAR T_MAIL_TEXT-STRING. "puts a blank line in
APPEND T_MAIL_TEXT.
T_MAIL_TEXT-STRING = 'Header1 Header2 Header3'.
APPEND T_MAIL_TEXT.
T_MAIL_TEXT-STRING = '----
APPEND T_MAIL_TEXT.
ENDFORM.
*& Form SETUP_TRX_&_RTX_MAILBOXES
Ensure that the mailboxes of the sender (INTMGR) are set up OK
FORM SETUP_TRX_AND_RTX_MAILBOXES USING P_RETURN_CODE.
get the user no of the sender in order to add the mail to the
user name's outbox for future reference
SELECT SINGLE * FROM SOUC
WHERE SAPNAM = SY-UNAME. "SAP name of a SAPoffice user
IF SY-SUBRC NE 0.
"Error finding the SAPoffice user info for the user
MESSAGE E064(ZR53) WITH SY-UNAME.
P_RETURN_CODE = 1.
EXIT.
ENDIF.
*Get the outbox No for the sender from the user No where the folder
" type is an outbox
SELECT * FROM SOFD WHERE OWNTP = SOUC-USRTP "Owner type from ID
AND OWNYR = SOUC-USRYR "Owner year from the ID
AND OWNNO = SOUC-USRNO "Owner number from the I
AND FOLRG = 'O'."Output box
ENDSELECT.
IF SY-SUBRC NE 0.
" Error getting folder information for the user
MESSAGE E065(ZR53) WITH SY-UNAME.
P_RETURN_CODE = 1.
EXIT.
ENDIF.
ENDFORM. " SETUP_TRX_&_RTX_MAILBOXES
*& Form CREATE_AND_SEND_MAIL_OBJECT
FORM CREATE_AND_SEND_MAIL_OBJECT.
FOLDER_ID-OBJTP = SOFD-FOLTP. " the folder type ( usually FOL )
FOLDER_ID-OBJYR = SOFD-FOLYR. " the folder year ( usually 22 )
FOLDER_ID-OBJNO = SOFD-FOLNO. " the folder no.
OBJECT_TYPE = 'RAW'. " the type of object being added
build up the object information for creating the object
OBJECT_HD_CHANGE-OBJLA = SY-LANGU. " the language of the email
OBJECT_HD_CHANGE-OBJNAM = 'PS to DM Interface'. " the object name
mail subject 'Mass Linking of QA, pass/fail'
MOVE TEXT-002 TO OBJECT_HD_CHANGE-OBJDES.
OBJECT_HD_CHANGE-DLDAT = SY-DATUM. " the date of the email
OBJECT_HD_CHANGE-DLTIM = SY-UZEIT. " the time of the email
OBJECT_HD_CHANGE-OBJPRI = '1'. " the priority ( highest )
OBJECT_HD_CHANGE-OBJSNS = 'F'. " the object sensitivity
F is functional, C - company sensitive
object_hd_change-skips = ' '. " Skip first screen
object_hd_change-acnam = 'SM35'. " Batch imput transaction
object_hd_change-vmtyp = 'T'. " Transaction type
add the text lines into the contents of the email
CLEAR OBJCONT.
REFRESH OBJCONT.
free objcont. " added this to delete the mail contents records
LOOP AT T_MAIL_TEXT.
OBJCONT-LINE = T_MAIL_TEXT-STRING.
APPEND OBJCONT.
ENDLOOP.
CLEAR OBJCONT.
build up the table of receivers for the email
REC_TAB-RCDAT = SY-DATUM. " the date to send the email
REC_TAB-RCTIM = SY-UZEIT. " the time to send the email
the SAP username of the person who will receive the email
REC_TAB-RECNAM = D_USERNAME.
the user type of the person who will send the email ( USR )
REC_TAB-SNDTP = SOUC-USRTP.
the user year of the person who will send the email ( 22 )
REC_TAB-SNDYR = SOUC-USRYR.
the user number of the person who will send the email
REC_TAB-SNDNO = SOUC-USRNO.
the sap username of the person who will send the email
REC_TAB-SNDNAM = SY-UNAME.
get the user info for the receiver of the document
SELECT SINGLE * FROM SOUC WHERE SAPNAM = D_USERNAME.
IF SY-SUBRC NE 0.
WRITE : / TEXT-001, D_USERNAME. "usnam.
EXIT.
ENDIF.
the user number of the person who will receive the email ( USR )
REC_TAB-RECNO = SOUC-USRNO.
the user type of the person who will receive the email ( USR )
REC_TAB-RECTP = SOUC-USRTP.
the user year of the person who will receive the email ( USR )
REC_TAB-RECYR = SOUC-USRYR.
the priority of the email ( highest )
REC_TAB-SNDPRI = '1'.
check for delivery on the email
REC_TAB-DELIVER = 'X'.
send express so recipient knows there is a problem
REC_TAB-SNDEX = 'X'.
check for a return receipt
REC_TAB-READ = 'X'.
the sap username of the person receiving the email
REC_TAB-ADR_NAME = D_USERNAME. "usnam.
add this receiver to the internal table
APPEND REC_TAB.
CLEAR REC_TAB.
call the function to create the object in the outbox of the sender
CALL FUNCTION 'SO_OBJECT_INSERT'
EXPORTING
FOLDER_ID = FOLDER_ID
OBJECT_HD_CHANGE = OBJECT_HD_CHANGE
OBJECT_TYPE = OBJECT_TYPE
OWNER = SY-UNAME
IMPORTING
OBJECT_ID = NEW_OBJECT_ID
TABLES
OBJCONT = OBJCONT
OBJHEAD = OBJHEAD
OBJPARA = OBJPARA
OBJPARB = OBJPARB
EXCEPTIONS
ACTIVE_USER_NOT_EXIST = 1
COMMUNICATION_FAILURE = 2
COMPONENT_NOT_AVAILABLE = 3
DL_NAME_EXIST = 4
FOLDER_NOT_EXIST = 5
FOLDER_NO_AUTHORIZATION = 6
OBJECT_TYPE_NOT_EXIST = 7
OPERATION_NO_AUTHORIZATION = 8
OWNER_NOT_EXIST = 9
PARAMETER_ERROR = 10
SUBSTITUTE_NOT_ACTIVE = 11
SUBSTITUTE_NOT_DEFINED = 12
SYSTEM_FAILURE = 13
X_ERROR = 14
OTHERS = 15.
IF SY-SUBRC NE 0.
MESSAGE A063(ZR53) WITH SY-SUBRC.
EXIT.
ENDIF.
call the function to send the already created email to the receivers
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
FOLDER_ID = FOLDER_ID
OBJECT_ID = NEW_OBJECT_ID
OUTBOX_FLAG = 'X'
OWNER = SY-UNAME
TABLES
RECEIVERS = REC_TAB
EXCEPTIONS
ACTIVE_USER_NOT_EXIST = 1
COMMUNICATION_FAILURE = 2
COMPONENT_NOT_AVAILABLE = 3
FOLDER_NOT_EXIST = 4
FOLDER_NO_AUTHORIZATION = 5
FORWARDER_NOT_EXIST = 6
NOTE_NOT_EXIST = 7
OBJECT_NOT_EXIST = 8
OBJECT_NOT_SENT = 9
OBJECT_NO_AUTHORIZATION = 10
OBJECT_TYPE_NOT_EXIST = 11
OPERATION_NO_AUTHORIZATION = 12
OWNER_NOT_EXIST = 13
PARAMETER_ERROR = 14
SUBSTITUTE_NOT_ACTIVE = 15
SUBSTITUTE_NOT_DEFINED = 16
SYSTEM_FAILURE = 17
TOO_MUCH_RECEIVERS = 18
USER_NOT_EXIST = 19
X_ERROR = 20
OTHERS = 21.
IF SY-SUBRC EQ 0.
MESSAGE I035(ZR53) WITH NEW_OBJECT_ID D_USERNAME. "usnam.
ELSE.
MESSAGE I036(ZR53) WITH D_USERNAME." sy-subrc.
ENDIF.
ENDFORM. " CREATE_AND_SEND_MAIL_OBJECT
thanks
mrutyun -
How to deconvolute an image when the line spread function is known
I want to deblur images with a custom filter. Therefore I took images of a sharp edge, which gives me the line spread function (and so also the point spread function)
It must be possible to derive a deconvolution kernel from this, but I don't know how.
Or should I do it in Fourierspace?
Thanks in advance!
Certified LabVIEW Developer (CLD)I would think that the best way to do this is to use a deconvolution matrix. You can find out how to calculate the matrix in most vision books. There is a general formula.
-
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 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 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 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 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 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.
Maybe you are looking for
-
1st time an SQL expression is placed on report a DB SELECT executes
The same problem can be created using the normal Crystal Reports XI Release 2 developer environment and/or code (not only a code issue). Symptom: We dynamically auto generate SQL Expressions, Tables, Joins, Formula's and anything through C# and place
-
Ora-00600 error when registering xsd with large enumeration
I am trying to register the xsd: http://212.130.77.78/StandatWS/StandatXSD.asmx/GetSchema?SchemaFile=std00019.xsd It contains a very large enumerated type like this: <xsd:simpleType name="std00019"> <xsd:annotation> <xsd:documentation>Stofparametre</
-
Icloud manage storage link not working on my iphone 4s
I need to manage my icloud storage, but the manage storage link on my iphone is not working. When I click on it, nothing happens. Can anyone help with this problem? I don't want to buy more storage if I can turn off some of my apps in icloud. Has any
-
Connection manager documentation
I'm having trouble finding some good documentation on Oracle Connection Manager, can anybody point me in the right direction. I'm looking in to how it might be used to proxy SQLnet in order to satisfy firewall requirements, and I'm at the stage of wh
-
When I go into my Time Machine Backups drive I see two folders of backups, my iMac and iMac2. When I go into the actual Time Machine program I can only access the backups in my iMac folder, not any which are in the iMac2 folder. I'm not able to move