我正在尝试像这样验证 Laravel 中的文件类型:
'rules' => ['mimes:pdf,bdoc,asice,png,jpg']
Run Code Online (Sandbox Code Playgroud)
验证适用于pdf
、png
和,jpg
但不适用于bdoc
或asice
文件(具有这些扩展名的文件未通过验证)。
我的猜测是,它可能不适用于这些文件类型,因为它们不包含在此处显示的 MIME 类型中: https: //svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime .types
我的这个假设正确吗?如果是这样,我如何验证这些文件类型?
我用来Email::MIME
生成电子邮件。我可以使用以下方法生成标头:
$email->header_str_set('some-label', @my-array);
Run Code Online (Sandbox Code Playgroud)
问题是,如果输出超过 70 个字符,它会将结果分成 2 或 3 行。我需要它在一行中。
我查看了Email::MIME
文档,发现:
... header_str 参数是要包含在消息中的标头对列表。每对的值应为将根据需要进行 MIME 编码的文本字符串。或者,它可以是具有 as_mime_string 方法的对象,该方法实现该对象到 MIME 编码字符串的转换。使用两个命名输入参数调用该对象方法:charset 和 header_name_length
我查了很多,但没有找到如何改变这个变量的值。
有任何想法吗?
我尝试过使用类似的东西:
$email->header_name_length_set(100);
Run Code Online (Sandbox Code Playgroud)
但它说无法定位对象方法。
我开始制作这样的图像就像小缩略图一样.
但我需要一个正则表达式来检查它是否包含 *.jpg, *.jpeg, .*png, *.gif
怎么能这样做?
我有一个表单发送给自己,并允许人们附加文件.但我似乎无法在邮件中允许HTML.我想我需要两种不同的内容类型:
$to = "my@email.com"; // Webmaster
$subj = "Great Subject";
$message = strip_tags($_POST['message']);
$attachment = chunk_split(base64_encode(file_get_contents($_FILES['attachment']['tmp_name'])));
$filename = $_FILES['attachment']['name'];
$boundary =md5(date('r', time()));
$headers = "From: $fname $lname <$email>\r\nReply-To: $fname $lname <$email>";
$headers .= "\r\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"_1_$boundary\"";
$message .= "Here is your <strong>File</strong>.".\r\n" ;
$message .= "This is a multi-part message in MIME format.
--_1_$boundary
Content-Type: multipart/alternative; boundary=\"_2_$boundary\"
--_2_$boundary
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 7bit
$message
--_2_$boundary--
--_1_$boundary
Content-Type: application/octet-stream; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
$attachment
--_1_$boundary--";
mail($to, $subj, $message, $headers);
Run Code Online (Sandbox Code Playgroud) 我有一个存储在'text/plain'文件中的MIME消息,如下所示:
MIME消息应该是多部分消息.
我如何在Python中解析这个?我已经尝试过email.message_from_string(),但它仍然编码为'text/plain',因此我无法使用电子邮件库来解析它.
我的代码看起来像这样:
f = open(settings.MEDIA_ROOT + '/raw.txt', 'r')
msg = email.message_from_string(f.read())
i = 1
for part in msg.walk():
if part.get_content_maintype() == 'multipart':
continue
ext = mimetypes.guess_extension(part.get_content_type())
filename = 'part-%03d%s' % (i, ext)
fp = open(settings.MEDIA_ROOT + '/' + filename, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
i += 1
Run Code Online (Sandbox Code Playgroud)
我会非常感谢任何帮助!
我有这些代码行:
$from = "email@domian.com";
$headers = "From:" . $from;
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
Run Code Online (Sandbox Code Playgroud)
我需要MIME类型,因为我使用file_get_contents作为html文件,我的问题是在它显示为"email@domain.comMIME-Version:1.0"的标题下,我只想说"email@domain.com"如何从标题中显示的内容中取出MIME类型?
谢谢
我正在忙着编写一个脚本,用于创建带有多部分替代部件和附件的电子邮件.现在一切似乎都正常工作,除了普通附件,它们似乎无法在Gmail或雅虎网络邮件中下载,我的所有内联图像都可用,但如果我附加任何内容,无论是简单的.txt文件还是pdf它们都是无法下载,我已将处置设置为附件..我可以在邮件中看到它.以下是我如何去做.还有什么我应该做的吗?
my $ent = MIME::Entity->build(From => $from,
To => $to,
Type => "multipart/alternative",
'X-Mailer' => undef);
if ($plain_body)
{
$ent->attach(
Type => 'text/plain; charset=UTF-8',
Data => $plain_body,
Encoding => $textEnc,
);
}
$ent->attach(Type => 'multipart/related');
$ent->attach(
Type => 'text/html; charset=UTF-8',
Data => $content,
Encoding => $htmlEnc,
);
if ($count != 0) {
for my $i (0..$count-1){
$ent->attach(Data => $attachment[$i],
Type => $content_type[$i],
Filename => $attname[$i],
Id => $cid[$i],
Disposition => $disposition[$i],
Encoding => $encoding[$i]);
}
Run Code Online (Sandbox Code Playgroud)
//// \在Yahoo或Gmail webmail中看不到的附件..
------------=_1371465849-18979-0
Content-Type: …
Run Code Online (Sandbox Code Playgroud) 我正在使用Pear PHP邮件库发送HTML电子邮件(主要是发送到hotmail).我正在解决CSS正常运行的问题.在收到消息时,CSS位于消息正文中,并且不应用样式.
代码如下:
$message = "<!DOCTYPE html>
<html>
<head>
<style>
body {
font:12px/1.4em Verdana, sans-serif;
color:#333;
background-color:#fff;
width:700px;
margin:50px auto;
padding:0;
}
a {
color:#326EA1;
text-decoration:underline;
padding:0 1px;
}
a:hover {
background-color:#333;
color:#fff;
text-decoration:none;
}
div.header {
border-bottom:1px solid #999;
}
div.item {
padding:5px 0;
border-bottom:1px solid #999;
}
</style>
</head>
</body>";
// PARSE
$limit = 9;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $news[$x]['title']);
$link = $news[$x]['link'];
$description = $news[$x]['desc'];
$date = date('d-m-Y', strtotime($news[$x]['date']));
$message .= …
Run Code Online (Sandbox Code Playgroud) 我使用 python 2 成功发送带有附件的邮件。但邮件仍然没有正文内容。
有人可以告诉我如何添加正文以及附件和主题吗?
我当前的代码是:
import smtplib, os
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders
from email.mime.text import MIMEText
SUBJECT = "Email Data"
emaillist=['xyz@hotmail.com']
msg = MIMEMultipart('mixed')
msg['Subject'] = 'SUBJECT '
msg['From'] = 'abc@gmail.com'
msg['To'] = ', '.join(emaillist)
part = MIMEBase('application', "octet-stream")
part.set_payload(open('C:'+os.sep+'Desktop'+os.sep+'temp1.txt', `"rb").read())`
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="output.txt"')
msg.attach(part)
server = smtplib.SMTP("smtp.gmail.com",587)
server.ehlo()
server.starttls()
server.login("abc@gmail.com", "password")
server.sendmail(msg['From'], emaillist , msg.as_string())
Run Code Online (Sandbox Code Playgroud) 我创建了一个生成 Excel 文件的端点。它应该用作 GET,以防我想要一些其他代码将其发布到不同的端点以发送电子邮件,或者我只想通过在浏览器中手动点击端点来下载 Excel 文件。它正在下载 Excel 文件,但是当我尝试打开它时,我看到消息“Excel 无法打开文件 'blahblah',因为文件格式或文件扩展名无效。请验证文件是否已损坏且文件扩展名是否正确与文件格式匹配。”
收到该错误后,我尝试更改响应内容字段和/或文件扩展名中的 MIME 类型,错误消失,文件打开并显示以下警告:“文件格式和扩展名”等等等等不匹配。文件可能已损坏或不安全。除非您相信其来源,否则请勿打开它。您仍要打开它吗?” 如果我无论如何打开它,文件仍然是空的。
这是我使用我创建的 ExcelPackage 并将其添加到响应中的代码。
var response = HttpContext.Current.Response;
response.ContentType = "application/vnd.openxmlformats- officedocument.spreadsheetml.sheet";
var fileName = string.Format("blahblah-{0}.xls", InstantPattern.CreateWithInvariantCulture("yyyy-dd-M-HH-mm-ss").Format(_clock.Now));
response.AddHeader("content-disposition", string.Format("attachment; filename={0}", fileName));
response.BinaryWrite(excelPackage.GetAsByteArray());
Run Code Online (Sandbox Code Playgroud)
我尝试添加不同的 mime 类型,如 application/excel。我试过使用 .xlsx 文件扩展名而不是 xls。什么都没有真正奏效。我知道 ExcelPackage 工作簿的工作表实际上包含我想要的数据,因为当我调试并将鼠标悬停在对象上时,我会看到我希望将其写入文件的单元格值。那么我做错了什么?
我已经尝试以两种方式生成 excelPackage,这两种方式都在 using 块内。像这样:
using (var excelPackage = new ExcelPackage())
{
// generate and download excel file
}
Run Code Online (Sandbox Code Playgroud)
也像这样:
using (var excelPackage = new ExcelPackage(new FileInfo(fileName)))
{
// generate and download excel file
}
Run Code Online (Sandbox Code Playgroud) 我使用POP3包从我的邮箱中读取我所有的电子邮件。
我收到了一封来自 POP3
下面示例中显示函数。(我省略了一些信息)
我正面临着从中提取信息的问题。
我使用邮件提取信息,但不幸的是,此包无法从原始电子邮件中提取信息。
是否有任何方法或软件包可以帮助我从原始电子邮件中提取信息?
// Retrieve all the email from your mailbox
msgs, _, error := connection.ListAll()
// Convert a chunk of integer to raw email
data, _ := connection.Retr(msgs[0])
// Extract Email Address
to, _ := mail.ParseAddress(data)
Run Code Online (Sandbox Code Playgroud)
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x5819ed]
Run Code Online (Sandbox Code Playgroud)
From:
To:
Subject:
Thread-Topic:
Thread-Index: AdPgWzcFT3FjbSbUT1ycoU2ioB1bKAAAAHuA
X-MS-Exchange-MessageSentRepresentingType: 1
Date:
Message-ID:
Accept-Language: en-SG, en-US
Content-Language: …
Run Code Online (Sandbox Code Playgroud)