CMS MADE SIMPLE FORGE

Form Builder

 

[#10336] It is impossible to send an attachment with email

avatar
Created By: Albert (treblA)
Date Submitted: Wed Dec 17 13:57:57 -0500 2014

Assigned To:
Version: 0.8
CMSMS Version: 1.11.11
Severity: Minor
Resolution: None
State: Closed
Summary:
It is impossible to send an attachment with email
Detailed Description:
apache/2.2.29 (gentoo) mod_dp/0.99.6 php/5.4.32-pl0-gentoo
CMS Made Simple 1.11.09, 1.11.11
CMSMailer 5.2.2

0.8 does not create (0.7.3 did and does) email header string like

Content-Type: multipart/mixed;
boundary="b1_e353526bb2d2ac220b93e5fd613a60af"

, only

Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

It is impossible to email a file attached (and uploaded to server with form
submitting - it works) to message therefore.
I do not know why. I give up. Sorry.


History

Comments
avatar
Date: 2014-12-18 14:33
Posted By: Fernando Morgado (JoMorg)

We need more info on how to reproduce this, as it works for me. There is only a
small issue with multi-page forms in that the upload fields must be on the last
page of a multi-page form, but that should be fixed in the next release (it's
already fixed in SVN).
 
      
avatar
Date: 2014-12-22 18:41
Posted By: Albert (treblA)

Sorry for a long response (google spamfolder cause).
Save this form as Visitor_message.xml and try it together with mode_rewrite and
hn_captcha (0.5.0), please. The mailer does not matter, use sendmail to
simplify.


<?xml version="1.0" encoding="utf-8"?>
<form id="7"
	alias="feedimage">
		<form_name><![CDATA[Visitor message]]></form_name>
		<attribute key="css_class"><![CDATA[formbuilderform]]></attribute>
		<attribute key="submit_action"><![CDATA[text]]></attribute>
		<attribute key="captcha_wrong"><![CDATA[Wrong code.]]></attribute>
		<attribute key="input_button_safety"><![CDATA[0]]></attribute>
<attribute key="title_user_captcha"><![CDATA[<small>Enter code from the
picture above.</small>]]></attribute>
		<attribute key="form_template"><![CDATA[{* DEFAULT FORM LAYOUT / pure CSS *}
<div class="noprint">
<!--noindex-->
{$fb_form_header}
{if $fb_form_done == 1}
{* This first section is for displaying submission errors *}
{if isset($fb_submission_error) && $fb_submission_error}
<div class="error_message">{$fb_submission_error}</div>
{if isset($fb_show_submission_errors) && $fb_show_submission_errors}
<div class="error">
<ul>
{foreach from=$fb_submission_error_list item=thisErr}
<li>{$thisErr}</li>
{/foreach}
</ul>
</div>
{/if}
{/if}
{else}
{* this section is for displaying the form *}
{* we start with validation errors *}
{if isset($fb_form_has_validation_errors) && $fb_form_has_validation_errors}
<br />
<div class="error_message">
<ul>
{foreach from=$fb_form_validation_errors item=thisErr}
<li>{$thisErr}</li>
{/foreach}
<li>An attachment should be attached again.</li>
</ul>
</div>
{/if}
{if isset($captcha_error) && $captcha_error}
<br />
<div class="error_message">
<ul>
<li>{$captcha_error}</li>
<li>An attachment should be attached again.</li>
</ul>
</div>
{/if}

{* and now the form itself *}
{$fb_form_start}
<div>{$fb_hidden}</div>
<div{if $css_class != ''} class="{$css_class}"{/if}>
{if $total_pages gt 1}<span>{$title_page_x_of_y}</span>{/if}
{foreach from=$fields item=entry}
{if $entry->display == 1}
{strip}
{if $entry->needs_div == 1}
<div
{if $entry->required == 1 || $entry->css_class != '' || $entry->valid == 0}
class="
{if $entry->required == 1}required{/if}
{if $entry->css_class != ''} {$entry->css_class}{/if}
{if $entry->valid == 0} fb_invalid{/if}
"
{/if}
>
{/if}
{if $entry->hide_name == 0}
<label{if $entry->multiple_parts != 1}
for="{$entry->input_id}"{/if}>{$entry->name}
{if $entry->required_symbol != ''}{$entry->required_symbol}
{/if}
</label>
{/if}
{if $entry->multiple_parts == 1}
{section name=numloop loop=$entry->input}
{if $entry->label_parts == 1}
<div>{$entry->input[numloop]->input}&nbsp;{$entry->input[numloop]->name}</div>
{else}
{$entry->input[numloop]->input}
{/if}
{if isset($entry->input[numloop]->op) &&
$entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}
{/section}
{else}
{if $entry->smarty_eval == '1'}{eval
var=$entry->input}{else}{$entry->input}{/if}
{/if}
{if $entry->helptext != ''}&nbsp;<a
href="javascript:fbht('{$entry->field_helptext_id}')"><img
src="modules/FormBuilder/images/info-small.gif" alt="Help" /></a>
<span id="{$entry->field_helptext_id}"
style="display:none">{$entry->helptext}</span>{/if}
{if $entry->valid == 0} &lt;--- {$entry->error}{/if}
{if $entry->needs_div == 1}
</div>
{/if}
{/strip}
{/if}
{/foreach}
{if $has_captcha == 1}
<div class="captcha">{$graphic_captcha}{$title_captcha}<br
/>{$input_captcha}</div>
{/if}
<div class="submit">{$prev}{$submit}</div>
</div>
{$fb_form_end}
{/if}
{$fb_form_footer}
<!--/noindex-->
</div>]]></attribute>
		<attribute key="submit_javascript"><![CDATA[]]></attribute>
		<attribute key="predisplay_udt"><![CDATA[-1]]></attribute>
		<attribute key="predisplay_each_udt"><![CDATA[-1]]></attribute>
		<attribute key="prev_button_text"><![CDATA[Back...]]></attribute>
		<attribute key="list_delimiter"><![CDATA[,]]></attribute>
		<attribute key="inline"><![CDATA[0]]></attribute>
		<attribute key="required_field_symbol"><![CDATA[*]]></attribute>
		<attribute key="use_captcha"><![CDATA[1]]></attribute>
		<attribute key="validate_udt"><![CDATA[-1]]></attribute>
		<attribute key="submit_button_text"><![CDATA[Send message]]></attribute>
		<attribute key="next_button_text"><![CDATA[Next...]]></attribute>
		<attribute key="redirect_page"><![CDATA[33]]></attribute>
<attribute key="submit_response"><![CDATA[<br /><h4>Your message was sent.
Thank You.</h4><br />]]></attribute>
		<attribute key="unspecified"><![CDATA[[not specified]]]></attribute>
	<field id="57"
		type="FieldsetStart"
		validation_type=""
		order_by="1"
		required="0"
		hide_label="0"
		display_in_submission="">
			<field_name><![CDATA[&lt;fieldset&gt;]]></field_name>
			<options>
			<option name="legend"><![CDATA[Send message]]></option>
			<option name="field_alias"><![CDATA[]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="javascript"><![CDATA[]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="58"
		type="TextField"
		validation_type="none"
		order_by="2"
		required="1"
		hide_label="0"
		display_in_submission="1">
			<field_name><![CDATA[Your name:]]></field_name>
			<options>
			<option name="length"><![CDATA[80]]></option>
			<option name="readonly"><![CDATA[0]]></option>
			<option name="field_alias"><![CDATA[name]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="javascript"><![CDATA[]]></option>
			<option name="regex"><![CDATA[]]></option>
			<option name="default"><![CDATA[]]></option>
			<option name="clear_default"><![CDATA[0]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<option name="html5"><![CDATA[0]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="66"
		type="FromEmailAddressField"
		validation_type="email"
		order_by="3"
		required="1"
		hide_label="0"
		display_in_submission="1">
			<field_name><![CDATA[Your e-mail:]]></field_name>
			<options>
			<option name="headers_to_modify"><![CDATA[b]]></option>
			<option name="field_alias"><![CDATA[email]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="javascript"><![CDATA[]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<option name="default"><![CDATA[]]></option>
			<option name="html5"><![CDATA[0]]></option>
			<option name="clear_default"><![CDATA[0]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="60"
		type="TextField"
		validation_type="none"
		order_by="5"
		required="0"
		hide_label="0"
		display_in_submission="1">
			<field_name><![CDATA[Phone number:]]></field_name>
			<options>
			<option name="length"><![CDATA[80]]></option>
			<option name="readonly"><![CDATA[0]]></option>
			<option name="field_alias"><![CDATA[phone]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="javascript"><![CDATA[]]></option>
			<option name="regex"><![CDATA[]]></option>
			<option name="default"><![CDATA[]]></option>
			<option name="clear_default"><![CDATA[0]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<option name="html5"><![CDATA[0]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="61"
		type="TextField"
		validation_type="none"
		order_by="6"
		required="1"
		hide_label="0"
		display_in_submission="1">
			<field_name><![CDATA[Subject/Reason:]]></field_name>
			<options>
			<option name="length"><![CDATA[160]]></option>
			<option name="readonly"><![CDATA[0]]></option>
			<option name="field_alias"><![CDATA[subject]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="javascript"><![CDATA[]]></option>
			<option name="regex"><![CDATA[]]></option>
			<option name="default"><![CDATA[]]></option>
			<option name="clear_default"><![CDATA[0]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<option name="html5"><![CDATA[0]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="62"
		type="TextAreaField"
		validation_type="none"
		order_by="7"
		required="1"
		hide_label="0"
		display_in_submission="1">
			<field_name><![CDATA[Message/issue text:]]></field_name>
			<options>
			<option name="wysiwyg"><![CDATA[0]]></option>
			<option name="rows"><![CDATA[15]]></option>
			<option name="cols"><![CDATA[80]]></option>
			<option name="field_alias"><![CDATA[message]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="default"><![CDATA[]]></option>
			<option name="clear_default"><![CDATA[0]]></option>
			<option name="length"><![CDATA[]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<option name="html5"><![CDATA[0]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="63"
		type="FileUploadField"
		validation_type=""
		order_by="8"
		required="0"
		hide_label="0"
		display_in_submission="1">
<field_name><![CDATA[Attach a file (jpg, gif, png, bmp, pdf, rar, zip, doc,
rtf) less then 2 MB.<br /> ]]></field_name>
			<options>
			<option name="max_size"><![CDATA[2048]]></option>
<option name="permitted_extensions"><![CDATA[jpeg, jpg, gif, png, bmp, pdf,
ico, txt, rar, zip, doc, rtf]]></option>
			<option name="show_details"><![CDATA[0]]></option>
			<option name="remove_file"><![CDATA[0]]></option>
			<option name="field_alias"><![CDATA[image]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<option name="javascript"><![CDATA[]]></option>
			<option name="file_destination"><![CDATA[uploads]]></option>
			<option name="field_logic"><![CDATA[]]></option>
			<option name="allow_overwrite"><![CDATA[1]]></option>
			<option name="file_rename"><![CDATA[]]></option>
			<option name="suppress_filename"><![CDATA[0]]></option>
			<option name="suppress_attachment"><![CDATA[]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="64"
		type="FieldsetEnd"
		validation_type=""
		order_by="9"
		required="0"
		hide_label="0"
		display_in_submission="">
			<field_name><![CDATA[&lt;/fieldset&gt;]]></field_name>
			<options>
			<option name="field_alias"><![CDATA[]]></option>
			<option name="css_class"><![CDATA[]]></option>
			<option name="helptext"><![CDATA[]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
	<field id="65"
		type="DispositionEmail"
		validation_type=""
		order_by="10"
		required="0"
		hide_label="0"
		display_in_submission="">
			<field_name><![CDATA[away we go]]></field_name>
			<options>
<option name="email_subject"><![CDATA[{$subject} (a message from
site)]]></option>
			<option name="email_from_name"><![CDATA[Visitor of your site]]></option>
			<option name="email_from_address"><![CDATA[visitor@yoursite.com]]></option>
			<option name="destination_address"><![CDATA[admin@yoursite.com]]></option>
			<option name="field_alias"><![CDATA[submit]]></option>
			<option name="html_email"><![CDATA[0]]></option>
			<option name="email_template"><![CDATA[{$sub_form_name}

Date: {$smarty.now|date_format:"%d.%m.%Y %X"}
IP: {$sub_source_ip}
{$sub_url}
Name: {$name}
e-mail: {$email}
Phone number: {$phone}
Subject/Reason: {$subject}

Message/Issue text:

{$message}]]></option>
			<option name="email_encoding"><![CDATA[utf-8]]></option>
			<option name="send_using"><![CDATA[to]]></option>
			<option name="email_cc_address"><![CDATA[]]></option>
			<option name="use_bcc"><![CDATA[0]]></option>
			<value><![CDATA[]]></value>
			</options>
</field>
</form>

      
avatar
Date: 2014-12-22 19:10
Posted By: Albert (treblA)

Cut strings... sh..

Ones again. The same stuff, now base64 encoded zipfile.


B64Encode 1.0 

Content-Type: application/octet-stream; name="Visitor_message.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Visitor_message.zip

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
      
avatar
Date: 2014-12-22 19:15
Posted By: Albert (treblA)

Visitor_message.b64 --> Visitor_message.zip --> Visitor_message.xml

It works!
      
avatar
Date: 2015-01-24 17:43
Posted By: Albert (treblA)

Solved with 0.8.1.1.
      
Updates

Updated: 2015-01-24 19:14
state: Open => Closed

Updated: 2015-01-22 12:02
assigned_to_id: 12532 => 100

Updated: 2014-12-22 19:18
resolution_id: 10 => 5

Updated: 2014-12-18 14:33
resolution_id: => 10
assigned_to_id: 100 => 12532